使用Alea查找内存泄漏

时间:2015-09-06 14:56:24

标签: aleagpu

我有几个脚本在运行一段时间后抛出一个Cuda内存异常。在他们内部我使用预分配的数组,所以我没想到这是一个问题。然而,在我将脚本转换为.fs文件并编译它们之后,探查器对于此任务并不是特别有用,并且当我使用它时,cuda-memcheck工具6.5(36)抛出了CudaInterOp异常。 cuda-memcheck 7.0(40)实际上迫使我在GPU熄灭时重置PC。

我有点不确定此刻该做什么。如何用Alea解决泄漏?

1 个答案:

答案 0 :(得分:1)

设备简化资源管理的完整用法简要如下:

// first, create module, which has the compilation stuff
use reduceModule = new DeviceReduceModule<float>(Target, <@ (+) @>) 
// second, create a reduce object, which contains temp memory for that maxItems
use reduce = reduceModule.Create(maxItems)
// third, allocate your device memory for input
use numbers = reduce.AllocateStreamBuffer(xxx)
// now you can scatter data and do reduce
numbers.Scatter(your data)
reduce.Reduce(numbers)
// now because you are using "use" keyword, the dispose() will be called implicitly