Настроить локальную (общую) память для OpenCL с использованием платформ Nvidia
Я хочу оптимизировать мой шаблон доступа к локальной памяти в моем ядре OpenCL. Я где-то читал о настраиваемой локальной памяти. Например, мы должны быть в состоянии настроить, какое количество используется для локальной памяти и какое количество используется для автоматического кэширования.
Также я прочитал, что размер банка можно выбрать для новейшего (Kepler) оборудования Nvidia здесь: http://www.acceleware.com/blog/maximizing-shared-memory-bandwidth-nvidia-kepler-gpus. Этот момент представляется очень важным для хранения значений двойной точности в локальной памяти.
Предоставляет ли Nvidia возможность настройки локальной памяти исключительно для пользователей CUDA? Я не могу найти похожие методы для OpenCL. Так это может быть вызвано по-другому или это действительно не существует?
1 ответ
К сожалению, при использовании OpenCL невозможно управлять конфигурацией кеша / локальной памяти L1. Эта функциональность предоставляется только во время выполнения CUDA (через cudaDeviceSetCacheConfig
или же cudaFuncSetCacheConfig
).