0

是否需要处理 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 还是应该创建一个并将其传递给任何需要工人的人?

谢谢约翰

4

1 回答 1

1

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

于 2015-12-18T04:10:00.440 回答