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 を使用できますか、それとも 1 つ作成してワーカーが必要な人に渡す必要がありますか?

ありがとうヨハン

4

1 に答える 1

1

ワーカーは処分できますが、処分することはお勧めしません。Worker は CUDA コンテキストを表し、長く存続する必要があります。デフォルトのワーカーとデフォルトの cublas オブジェクトは、デフォルトの GPU デバイス上に構築されます。

于 2015-12-18T04:10:00.440 に答える