Аллоцирование массивов на ГПУ

Доброе время суток. Такая проблема, в процедуре на ГПУ необходимо аллоцировать массивы по параметру blsz (проблема_1). Стандартными фортрановскими приемами, естественно, не работает. Может кто сталкивался с такими вещами.

attributes(global) subroutine mmul_kernel( A, B, C, N, blsz )
real :: A(N), B(N), C(N)
integer, value :: N, blsz
integer :: i, j, kb, k, tx, ty
real, shared :: Asub(1:512), Bsub(1:512) ! проблема_1
real :: Ci
tx = threadidx%x
i = (blockidx%x-1) * blsz + tx
Ci = 0.0
do kb = 1, N, blsz
Asub(tx) = A(tx+kb-1)
Bsub(tx) = B(tx+kb-1)
call syncthreads()
Ci = Asub(tx) * Bsub(tx)
call syncthreads()
enddo
C(i) = Ci
end subroutine mmul_kernel

Forums: