如何在GPU上运行CNTK c#EvalDLL Wrapper程序?

时间:2016-06-13 21:20:41

标签: gpu cntk autoit-c#-wrapper

我在基于CIFAR-10样本的培训和评估网络方面取得了成功。我正在使用我自己的特定尺寸的图像。网络使用GPU进行培训,并能够使用CPU进行评估。但是,我无法使用GPU进行评估。评估使用的是C#EvalDLL Wrapper。 deviceID从-1更改为0以指示GPU#,如下所示:

model0.CreateNetwork(string.Format(“modelPath = \”{0} \“”,modelFilePath),deviceId:0);

我错过了什么吗? 任何人都可以在C#EvalDLL Wrapper程序上运行GPU吗?

我正在使用CNTK的二进制版本(不是CPU_Only)。

2 个答案:

答案 0 :(得分:0)

我可以在GPU上运行EvalWrapper,完全使用您在下面发布的代码。我刚刚通过CsEvalClient进行了测试:

  • 在GPU框上通过EvalWrapper运行我的CNN时,日志说它使用的是cuDNN卷积引擎,它只是GPU。我认为这是它真正在GPU上运行的标志。
  • 在仅限CPU的盒子上运行代码时,它会尖叫它无法找到CUDA驱动程序,正如我所料。
  • 当切换回deviceId:-1并在仅CPU框上运行时,日志说它使用GEMM卷积引擎,并且该引擎仅限CPU。

当CNTK加载模型时,您在日志中看到了什么?

答案 1 :(得分:0)

我不确定这是正确的程序。这就是我做的。 而不是使用二进制愿景,安装源代码遵循安装说明并编译源代码。 复制来自" x64.release"的DLL目录到" exe"的目录。文件位于(流动https://github.com/Microsoft/CNTK/issues/394)。 注意:对于解决方案中的多个项目,请确保配置相同(例如,x64处的发布模式)。 使用GTX 960,图像的处理速度从770ms到1ms。