您好,我正在使用 alea gpu 处理 ML 代码。有趣的是,当我尝试在我的笔记本电脑上运行我的代码时,一切正常,除了太慢。当我想在第二台具有更强大 GPU 的 PC 上运行我的代码时,它会因异常而崩溃:
System.Exception was unhandled
HResult=-2146233088
Message=Error opening outputfile 'C:\Users\USERNAME\AppData\Local\Temp\tmp64C4.tmp': No mapping for the Unicode character exists in the target multi-byte code page
Source location stack:
-> at defining runtime64 (sm61,64bit)
Loading method as kernel:
-> Method: AI_test.NeuralNet.Gpu.Activations.Hyperbolic.[VoidGpuActivationKernel(Single[,], Single[], Single[])]
-> InstanceOpt: AI_test.NeuralNet.Gpu.Activations.Hyperbolic
-> Argument.#0: System.Single[,]
-> Argument.#1: System.Single[]
-> Argument.#2: System.Single[]
Getting or loading method as kernel:
-> Method: AI_test.NeuralNet.Gpu.Activations.Hyperbolic.[VoidGpuActivationKernel(Single[,], Single[], Single[])]
-> InstanceOpt: AI_test.NeuralNet.Gpu.Activations.Hyperbolic
-> Argument.#0: System.Single[,]
-> Argument.#1: System.Single[]
-> Argument.#2: System.Single[]
Source=Alea
堆栈跟踪显示我在此代码上崩溃:
GpuDevice.Launch(_guessKernelFunc, GuessLaunchParam, Neurons, Input, Output);
但我确定这在我的笔记本电脑上工作得很好,所以我错过了什么是由 PC 设置或其他原因引起的吗?我已经安装了 Cuda 8.0。我在 Cuda 9.0 之前尝试过,但是因为我遇到了同样的错误,我尝试用我在笔记本电脑上使用的旧 8.0 版本替换它,但它没有帮助。
第二个问题是有人知道如何让编译器缓存我的内核并且每次我尝试加载相同的静态内核时不生成新的 GPU 代码吗?我试图查看样本,但我不清楚。