как вызвать "cudaDeviceSetSharedMemConfig" и "cudaDeviceSetCacheConfig" - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь оптимизировать разделяемую память для кода cuda на GTX 1080. Для этого я хочу изменить ширину банка разделяемой памяти и конфигурацию кеша, вызвав:

cudaDeviceSetSharedMemConfig(cudaSharedMemBankSizeEightByte)

и

cudaDeviceSetCacheConfig(cudaFuncCachePreferShared)

Где я могу вызвать эти функции? В настоящее время я вызываю их в функции хоста, которая использует "cudaLaunchCooperativeKernel для вызова глобальной функции:

template< ... > bool launch_dualBlock(...){
    ...  
    gpuErrChk(cudaDeviceSetSharedMemConfig(cudaSharedMemBankSizeEightByte));
    gpuErrChk(cudaDeviceSetCacheConfig(cudaFuncCachePreferShared)); 
    ...
    cudaLaunchCooperativeKernel( (void*)nv_wavenet_dualBlock<...>, grid, block ... )
}

Определение nv_wavenet_dualBlock:

template< ... > __global__ void nv_wavenet_dualBlock( ... ){
    nv_wavenet_dualBlock_A< ... >( ... );
    return;
}

и nv_wavenet_dualBlock_A - это функция устройства.

Однако два вызова функций, похоже, ничего не делают, потому что когда я печатаю общую память и конфигурацию кэша после вызова двух функций, напечатанные значения указывают, что ничего не изменилось. Кроме того, я проверяю возвращаемое значение двух функций, и они обе cudaSuccess.

Буду очень признателен за вашу помощь.

1 Ответ

0 голосов
/ 13 сентября 2018

Ни один из этих вызовов функций не влияет на графические процессоры семейства Максвелла или Паскаля.

Это описано в документации по вычислительным возможностям в руководстве по программированию

* 1006.* а в руководства по настройке

Устройства Maxwell и Pascal не поддерживают режим 8-байтового банка.

Устройства Maxwell и Pascal имеют разный дизайн кэша, такой что L1 иОбщая память больше не является частью одного и того же функционального блока.Поэтому нет «разделения» между L1 и кешем, и нет необходимости / никакого эффекта для установки предпочтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...