请考虑以下代码:
__global__ void kernel(int *something) {
extern __shared__ int shared_array[];
// Some operations on shared_array here.
}
Run Code Online (Sandbox Code Playgroud)
是否可以将整个shared_array设置为某个值 - 例如0 - 而无需在某个线程中明确地寻址每个单元格?
我正在尝试在Haskell中解决算法难题,为此我需要相当大的数据结构.但是问题解决网站我提交了我的解决方案,不使用任何运行时选项来允许更大的堆栈,但我听说我可以使用编译器选项作为pragma.我在我的代码中尝试使用以下编译指示:
{-# OPTIONS_GHC -O2 -rtsopts -with-rtsopts=-K32m #-}
Run Code Online (Sandbox Code Playgroud)
然后我编译ghc --make algo.hs.但是,当我在一些大型测试中运行我的机器时,程序崩溃并发生堆栈溢出,并报告当前堆栈大小为8MB.另一方面,当我编译时:
ghc -rtsopts -with-rtsopts=-K32M --make algo.hs -fforce-recomp
Run Code Online (Sandbox Code Playgroud)
该程序可以在相同的数据上正常工作,而无需添加任何+RTS参数.我使用的是GHC 7.0.2,但解决问题的网站使用的是6.12.3,所以我最好也在寻找可以使用旧版本的解决方案.