首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行高量级程序时的OpenACC错误

运行高量级程序时的OpenACC错误
EN

Stack Overflow用户
提问于 2013-12-13 03:56:24
回答 1查看 251关注 0票数 0

使用以下代码,正确吗?我有2GB Geforce 750米和使用PGI编译器。这个程序对于4000x4000数组很好,它抱怨的任何更高的东西--即使它不应该--您可以看到我已经分配了一个9000x9000数组,但是如果我使用n值> 4000,它会抱怨并抛出一个运行时错误。

代码语言:javascript
运行
复制
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        
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-22 09:17:23

感谢罗伯特·克罗夫拉

我的猜测是,在mac上有某种显示超时(这里也是如此),当您增加到更大的大小时,矩阵乘内核需要更长的时间。在某个时候,Mac中的显示驱动程序超时会重置GPU。如果是这样的话,您可以通过切换到GPU不承载显示的系统/GPU来绕过它。Linux和Windows (TDR)都有这样的超时机制。

在Mac中,您必须引导到>控制台模式,还必须禁用自动图形切换,因为控制台模式关闭Aqua (Mac中的GUI),因此应该消除限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20558813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档