
Функция, использующая CUDA –
Функция, использующая CUDA
пример (файл *.cu)
void
CUDAbackpropagate(
float
*ld,
float
*lo,
float
*wm,
float
*wmd,
float
*bvd,
float
*in,
float
*ind,
int
insize,
int
outsize,
int
wm_pitch)
{
dim3
threads;
dim3
grid;
int
repetit=1;
threads.x = MAX_THREAD_PER_BLOCK;
repetit = outsize/MAX_THREAD_PER_BLOCK;
if
(repetit*MAX_THREAD_PER_BLOCK<outsize) repetit++;
if
(insize<=MAX_BLOCKS_PER_GRID_DIM) {grid.x = insize;}
else
{printf("CUDA device: Can't handle layers with more than 65535 inputs (extendible to
65535^3)\n");
return
;}
CUDA_SAFE_CALL( cudaThreadSynchronize() );
CUDAbackpropagateCALC
<<<grid,
threads,threads.x*sizeof(float)>>>(
ld,lo,wm,wmd,bvd,in,ind,insize,outsize,repetit,wm_pitc
h);
CUDA_SAFE_CALL( cudaThreadSynchronize() );
}