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

Не, ну 5 бит (лукапов)

Не, ну 5 бит (лукапов) достаются просто на халяву (в предположении о 32 SP, что не так, их может быть или 30 или 48, или меньше, я так просто прикидываю).

Но у нас очень иерархическая память, еще есть регистры и shmem. Предполагая, что половину регистров можно потратить на всякую фигню, у нас 32 килобайт регистров и 32 килобайта shmem на CUDA 1.x (кроме 1.0) - это 16к 4-байтных чисел т.е. записав туда индекс (пары значение-смещение) можно еще 13 лукапов поэкономить. На Fermi всего вдвое больше - значит 14. Вместе с индексом на номере SP - 19.

При этом 500M влезет только на Tesla, реально 250M т.е. 2^28 и ускорились мы раза эдак в три примерно.

Если m относительно небольшие и многократные последовательные чтения из разных блоков - не слишком страшны (понятно что неэкономно, но дофига быстро), то можно сделать индекс на номере блока/треда.