On 31/05/2016 20:45, David Ongaro wrote: > I suspect Aja is right and Remi should go the path of integrating the > GPU even if it's just to get more "oomph" for CS. That he tried to > learn GPU programming from scratch is a noble attempt but I guess > it's just to ambitious to accomplish in a reasonable timeframe. Using > one of the ready to use frameworks should make it feasible though.
They're a pretty annoying burden if you want to make the engine commercial. I'm not even sure CuDNN can be bundled with the engine? Additionally, not all customers might have a GPU that is enough faster than the CPU (i.e. not the built-in one in modern CPUs, save maybe AMD's APU units), so you need a good CPU fallback anyway. Oh, and if you use CUDA, you lose about 1/3rd of your customers, again. Those are things you can ignore if you're AlphaGo, not so much if you're selling software. You're overestimating the difficulty of programming a GPU though. Yes, if you've never done it before the programming takes some adjustment, but the SIMT model is very convenient to write code in, IMHO much easier than trying to coerce things to SIMD layouts. From what I understand the AVX512 instruction set in the next generation of Intel CPUs will allow them to be programmed better using SIMT. I can't wait! What's more annoying is writing a GUI to allow the user to select his GPU, being able to dynamically switch between CPU/GPU, include some mini-benchmark so we know if the GPU is actually useful, add error handling if the user has buggy drivers, etc... (aka the GPU version of Leela won't be released quite yet) -- GCP _______________________________________________ Computer-go mailing list [email protected] http://computer-go.org/mailman/listinfo/computer-go
