Alea GPU 缺少输出文件



你好,我正在使用alea gpu处理ML代码。有趣的是,当我尝试在笔记本电脑上运行我的代码时,除了太慢之外,一切正常。当我想在具有更强大 GPU 的第二台 PC 上运行我的代码时,它会在异常时崩溃:

System.Exception was unhandled
HResult=-2146233088
Message=Error opening outputfile 'C:UsersUSERNAMEAppDataLocalTemptmp64C4.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代码?我试图查看样本,但我不清楚。

因此,对于那些将被此问题阻止的人来说,解决方案很容易。我的用户名文件夹的格式为姓氏,当我使用没有空格的用户名创建新用户时,它又开始工作了。这是一个非常棘手的问题,但最终这是解决方案。

最新更新