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

почему бы не хранить в памяти

почему бы не хранить в памяти уже в сдвинутом виде? тогда в этом кернеле все доступы к памяти будут выровнены, будет работать на пике пропускной способности памяти. Иначе --- на GTX280 будет работать в полтора---два раза медленнее пика.

я так понимаю есть какие-то другие компоненты приложения которые наоборот будут тормозить если массивы в памяти сдвинуть?

и вообще что вы хотите --- ускорить одну итерацию или считать сзазу несколько итераций за один проход? Если одну итерацию, то зачем нужен межблочный обмен? пересечения данных тут нет.