What is the fastest way to read/write GPIOs on SAMD21 boards?

Heh. This will do 20ns pulses...

static inline void fastWrite(int bitnum, int val) {
  if (val)
    PORT_IOBUS->Group[0].OUTSET.reg = (1 << bitnum);
  else
    PORT_IOBUS->Group[0].OUTCLR.reg = (1 << bitnum);
  asm volatile ("" ::: "memory");
}

(gross)