0
使用以下代碼,它是否正確?我有2GB的Geforce 750M和使用PGI Fortran編譯器。該程序工作正常4000x4000
陣列,任何更高的抱怨,即使它不應該,你可以看到我已經分配9000x9000
數組,但如果我使用n值> 4000它抱怨並引發運行時錯誤。運行程度較高的程序時出現OpenACC錯誤
program matrix_multiply
!use openacc
implicit none
integer :: i,j,k,n
real, dimension(9000,9000) :: a, b, c
real x_scalar
real x_vector(2)
n=5000
call random_number (b)
call random_number (a)
!$acc kernels
do k = 1,n
do i = 1,n
do j = 1,n
c(i,k) = c(i,k) + a(i,j) * b(j,k)
enddo
enddo
enddo
!$acc end kernels
end program matrix_multiply
你能更具體然後「抱怨」嗎?什麼是錯誤信息? –
我想堆棧大小的問題,因爲數組仍然需要在主機內存上。另外,也許除了這點之外,也可以用CuBLAS來完成矩陣乘法。 – steabert
我能夠在Tesla M2050(3GB),PGI 13.10編譯器,CUDA 5.0,RHEL 5.5上成功編譯和運行上述代碼。即使我將'n'增加到9000,它也能正常運行(大約需要60秒)。對不起,我沒有GeForce 750M來試用它。 –