Я довольно новичок в OpenCL, поэтому, пожалуйста, потерпите меня.
На первой итерации моего кода я использовал базовые буферы памяти для больших наборов данных и объявил их глобальными. Однако теперь, когда я хочу улучшить синхронизацию, я хотел использовать для этого текстурную память. В версии CUDA мы используем cudaBindTexture и tex1Dfetch для получения данных для большого одномерного массива с плавающей точкой. Из моего понимания спецификации память текстур - это то же самое, что память изображений. Однако, поскольку есть только 2D и 3D объекты изображения с максимальной высотой и шириной, я столкнулся с некоторыми проблемами. Мой массив больше максимальной высоты / ширины, но не максимальной высоты * максимальной ширины. Должен ли я конвертировать мой 1D массив в 2D? Или есть лучший способ сделать это?
Или я полностью выключен?
Я прочитал http://forums.nvidia.com/index.php?showtopic=151743 и http://forums.nvidia.com/index.php?showtopic=150454, но они не совсем точно определили, была ли память текстур, упомянутая в Руководстве по наилучшим практикам и программированию, фактически объектами изображения.
Спасибо и любая помощь / предложения приветствуются!