Мой кеш CUDA JIT постоянно находится ниже CUDA_CACHE_MAXSIZE

У меня есть приложение OpenCL, которое работает на CUDA v7.5.

Приложение имеет очень много больших ядер. Я устанавливаю CUDA_CACHE_MAXSIZE на максимально возможное значение, 4294967296 т.е. 4 ГБ. Однако общий размер файлов, хранящихся в каталоге кеша, никогда не растет выше ~ 307 МБ. Кажется, что записи кэша добавляются / высылаются (я вижу небольшие изменения в общем размере файла, и мое приложение, безусловно, попадает в кеш при запросе на последние ядра). Он ведет себя так, как если бы существовал некоторый предел размера кеша ниже, чем CUDA_CACHE_MAXSIZE, возможно, с помощью opencl-драйвера?

Я хотел бы знать, что вызвало это, и, если это возможно, я могу получить доступ к полному размеру кеша 4 ГБ.

Всего 1 ответ


Извините за то, что вы так долго отвечали. Я просто обнаружил, что это ошибка в libcuda. Я скоро отправлю решение.

На данный момент обходным CUDA_CACHE_MAXSIZE является установка CUDA_CACHE_MAXSIZE на 2Gb-1 ( 2147483647 ). Установка его на значение между 2Gb и 4Gb-1 может привести к действительному максимальному размеру кеша, а установка его на 4Gb должна привести к размеру кеша в 256Mb, который является размером кеша по умолчанию с R334 вместо 32Mb, здесь .

Надеюсь, это решение поможет вам.


Есть идеи?

10000