How to construct a CNN with a new layer and How should I run CUDA tests to check whether they pass or fail?

Hello everyone,

I need some help regarding constructing a CNN with a new layer (Average Pooling Layer) and running CUDA tests to check whether they pass or fail. I am trying to solve the tasks given for GSoC’18 in which one task is related to implementing Average Pooling Layer and another task is related to implementing Im2Col function that works on CUDA.

To report the results, I have to create a CNN with a new layer. How should I create it?

For Im2Col function, I have written code by creating new file name TestIm2ColCuda.cxx. When I run ctest -j4 -R TMVA-DNN* I get this:

which means I’m not testing the CUDA tests written. It is only testing CPU support. How should I test CUDA part ?

It will be great if anyone can help me out so that I can proceed further and understand the TMVA-DNN project structure. :slight_smile:

Hi,

If you want to add new tests, you should include them in the corresponding
CMAKELists.txt file in tmva/tmva/test/DNN

However this topic is specific to the CNN GSOC project and it should be discussed by mail directly there with the project mentors
Best Regards

Lorenzo

Greetings @moneta,

I have already written tests for Im2Col function in CUDA in the corresponding CMAKELists.txt file in tmva/tmva/test/DNN

Stil I’m not able to figure out why I’m not able to see GPU tests when I run ctest -j4 -R TMVA-DNN* command in terminal.

I have earlier tried to discuss this issue through the mail, but there was no response. Your guidance will be very much helpful.

Cheers,

Harshit

Hi,

GPU is supported now only for the DNN (Dense layer networks) and not for CNN.
To have the GPU support for DNN you need to enable in CMAKE with -DCUDA=On

Lorenzo