6 ms·
Amazing work. What changes are needed in this library to make it benchmark GPUs ?
by disdi 8y ago
Amazing work. What changes are needed in this library to make it benchmark GPUs ?
- andrew-wja 8y agoNo changes are required in the library -- you just need to have some way of generating the code for the forward pass using e.g. cuDNN (which already has a heuristic selector!)
- andrew-wja 8y agoIn the compiler we need to add backends to cuDNN and probably some OpenCL DNN framework -- this is already fairly high on our list of priorities.
- disdi 8y agoI am really not able to connect the dots here. Bear with me for my ignorance since I am from OS/drivers background and not a compiler guy. Can I compile code at below link with nvcc(Nvidia compiler) - https://bitbucket.org/STG-TCD/trinnity/src/b33c94e1fabd18f83c8cdd70475bf50e2ade6298/include/dense/cuda/?at=master https://bitbucket.org/STG-TCD/trinnity/src/b33c94e1fabd18f83... If I write gemm.cl like above program implementing a bunch of CNN primitives, why I cannot compile it with gcc. For compiling any Opencl program, I need to write kernel in suppose sample.cl file and compile it with gcc –Wall sample.cl –o sample -lOpenCL This -lOpenCL picks up libopencl.so file from my Hardware vendor(Qcom, Intel) and generates the binary which runs it on GPU(or whereever Opencl is available) Why do I need anything trinity compiler and optimizer.
- andrew-wja 8y agoThe short answer is that there are dozens of ways to use that GEMM to do convolution (convolution algorithms), and there are NUM_ALGORITHMS * NUM_LAYERS way to implement the network. Our toolkit figures out which of those arrangements are the fast ones!