0

I was successful on training and evaluate networks based on the CIFAR-10 samples. I'm using my own images with specific size . The networks were trained with GPU and able to evaluate with CPU. However, I'm not able to evaluate it with with GPU. The evaluation is using C# EvalDLL Wrapper. The deviceID is change from -1 to 0 to indicate the GPU # as shown below:

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

Did I missed something? Can anyone run GPU on C# EvalDLL Wrapper program ?

I'm using binary version of the CNTK (not CPU_Only).

4

2 回答 2

0

I'm able to run the EvalWrapper on a GPU, using exactly the code you posted below. I just tested via CsEvalClient:

  • When running my CNN through EvalWrapper on a GPU box, the logs say that it used the cuDNN convolution engine, which is GPU-only. I take that as a sign that it really ran on the GPU.
  • When running the code on a CPU-only box, it screams that it can't find a CUDA driver, as I would expect.
  • When switching back to deviceId:-1 and run on the CPU-only box, the logs say that is uses the GEMM convolution engine, and that engine is CPU-only.

What do you see in the logs when CNTK loads the model?

于 2016-06-14T09:49:24.947 回答
0

I'm not sure this is the right procedure. Here is what I did. Instead of using the binary vision, install the source code follow the installation instruction and compile the source code. Copy the DLLs from "x64.release" directory to the directory where the "exe" file located (flowing https://github.com/Microsoft/CNTK/issues/394). Note: for multiple projects in solution, make sure the configuration is the same (eg. release mode at x64). With GTX 960, the processing speed to from 770ms to 1 ms for an image.

于 2016-06-14T20:59:52.303 回答