こんにちは私はMLコードでalea gpuを使って作業しています。興味深いのは、自分のラップトップで自分のコードを実行しようとすると、すべてがうまくいきます。私はそれは例外でクラッシュだより強力なGPUを有する第2のPC上で私のコードを実行したいときは:Alea gpuに出力ファイルがありませんか?
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のバージョンに置き換えようとしましたが、それは役に立たなかった。
2番目の質問誰かが私のカーネルをキャッシュし、同じ静的カーネルをロードしようとするたびに新しいGPUコードを生成しないようにする方法を知っていますか?私はサンプルを見ようとしましたが、それは私には分かりません。
コンパイラは自動的にカーネルをキャッシュします。 何もする必要はありません。 – redb
それは本当ではないと私は思う...私はアイリスのデータセットと100ニューロンCPUネットと私のMLの結果を比較すると約20倍高速ですので、私はカーネルのキャッシュに問題があることは明らかです。 CUDA GPUがこれほど遅くないので、明らかに何か間違いがあります。 – Shoxik
私はあなたにカーネルがキャッシュされていることを保証します:) ファイルが不足しているかどうかわかりませんが、処理するのに十分なデータがないためにパフォーマンスの問題が発生している可能性があります。 レイヤーあたりML 100のニューロンでは、何も近くにありません。 GPUがその種の番号のベッドから出ることはありません;) あなたはそのデータをGPUに移動するというペナルティを払っています。 私は、MNISTデータセットを最初に提案します。 – redb