У меня есть программа CUDA, в которой одна деформация требует доступа (например) к 96 байтам глобальной памяти.
Правильно выравнивает ячейку памяти и индексы дорожек так, что доступ объединяется и выполняется в одной транзакции.
Программа может сделать доступ, используя 12 линий, каждая из которых имеет доступ к uint8_t. В качестве альтернативы он будет использовать 6 полос доступа к uint16_t или 3 полосы доступа к uint32_t.
Есть ли разница в производительности между этими альтернативами, быстрее ли доступ, если каждый поток обращается к меньшему объему памяти?
Когда объемы памяти, к которым требуется доступ каждой деформации, различаются, есть ли смысл оптимизировать ее так, чтобы потоки создавались для доступа к меньшим единицам (16 или 8 бит), когда это возможно?