在Alea CUDA中处理默认工作程序

时间:2015-12-17 16:12:03

标签: f# gpgpu aleagpu

是否需要处理Worker.Default或CUBLAS.Default?

我的CUDA代码运行正常,但程序退出时出现以下异常:

Got CUDA error CUDA_ERROR_INVALID_VALUE
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at Alea.CUDA.CUDAInterop.cuSafeCall(cudaError_enum result)
   at <StartupCode$Alea-CUDA>.$Engine.f@1-46[T](WorkerContext this, FSharpFunc`2
 f, Unit _arg6)
   at Alea.CUDA.WorkerContext.eval[T](FSharpFunc`2 f)
   at Alea.CUDA.Program.Dispose(Boolean disposing)
Got CUDA error CUDA_ERROR_INVALID_VALUE
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at Alea.CUDA.CUDAInterop.cuSafeCall(cudaError_enum result)
   at <StartupCode$Alea-CUDA>.$Engine.f@1-46[T](WorkerContext this, FSharpFunc`2
 f, Unit _arg6)
   at Alea.CUDA.WorkerContext.eval[T](FSharpFunc`2 f)
   at Alea.CUDA.Program.Dispose(Boolean disposing)

我可以在多个类中使用Worker.Default和CUBLAS.Default,还是应该创建一个并将其传递给需要工作人员的人?

由于 约翰

1 个答案:

答案 0 :(得分:1)

虽然可以处理工人,但不建议您处理它。 Worker代表一个CUDA上下文,应该是长寿的。默认的worker和默认的cublas对象是在默认的GPU设备上构建的。