Page 23

Вычислительное ядро - пример
Вычислительное ядро пример
(файл *.cu)
__global__ void
CUDAupdateCALC(
float
*wm,
float
*wmd,
float
*bv,
float
*bvd,
float
lr,
float
mom,
int
insize,
int
outsize,
int
r,
int
wm_pitch)
{
{
int
i=0;
for
(i=0;i<r;i++)
{
int
idx = threadIdx.x+blockDim.x*i;
if
(idx<outsize)
{
[ d *
h bl k d
]
l *
d[ d *
h bl k d
]
wm[idx*wm_pitch+blockIdx.x]-=lr*wmd[idx*wm_pitch+blockIdx.x];
if
(blockIdx.x==0) bv[idx] -= lr*bvd[idx];
}
}
}
__syncthreads();
}