Комментировать

Я сейчас почитал

Я сейчас почитал повнимательнее доки и наткнулся на одну интересную формулировку:

"First, the device is capable of reading 32-bit, 64-bit, or 128-bit words from global
memory into registers in a single instruction. To have assignments such as:

  1. __device__ type device[32];
  2. type data = device[tid];

compile to a single load instruction, type must be such that sizeof(type) is
equal to 4, 8, or 16 and variables of type type must be aligned to sizeof(type)
bytes (that is, have their address be a multiple of sizeof(type))."

То есть получается, что всё-таки на этапе компиляции? Хоть как-то и не логично вроде...