2012-04-26 2 views
2

Я просто интересно, в чем разница между вызовом функции ядра CUDA сCUDA функция ядра

<<<BLOCK_NUM, THREAD_NUM>>> 

и

<<<BLOCK_NUM, THREAD_NUM, THREAD_NUM * sizeof(float)>>> ? 

ответ

8

Дополнительный аргумент во втором случае указывает объем динамической разделяемой памяти для каждого блока в ядре.

Например, если у вас есть ядро, определенное как это:

__global__ void kernel(...) 
{ 

    extern __shared__ float buffer[]; 

} 

Запуск второго ядра попытается выделить THREAD_NUM слов для общего массива памяти buffer для каждого блока ядра. Дополнительную информацию см. В приложении B.17 руководства по программированию CUDA 4.1.

Смежные вопросы