MIOpen. What a great library it is.
COSCUP 2017 just occurred last weekend. And I decided to attend to the lightning talk on how I get MIOpen to run on non AMD hardware and my vision on what this library could be. If you haven’t been at COSCUP. Here are the slides.
We all know that Nvidia is the largest and the leading AI chip provider. That gets me concerned. Just as how Intel acted before AMD comes up with Ryzen – Selling it’s CPU at any price they want. Nvidia can sell their GPUs for any price they want in the ML market. Fortunately AMD releases it’s neural network acceleration library this June to enable fast neural network acceleration on AMD GPUs. And more fortunately, MIOpen does not relay on any AMD proprietary stuff! Hey, why not make it everyone vs Nvidia instead of AMD vs Nvidia?
That gets me started working on making MIOpen working on any OpenCL device. After some digging into the source code and fixing some bugs. I made it. MIOpen now runs on Nvidia and Intel OpenCL SDK. Ignoring Nvidia, now Intel HD Graphics and Xeon Phi is capable to run MIOpen. That’s two high performance product line added to the competition. 🙂
Unfortunately no all OpenCL capable devices can run MIOPen. I don’t think I can get MIOpen running on Xilinx or Intel’s(Altera) FPGA. They do support OpenCL, in a way that makes most OpenCL code for GPU/CPU not working weill on them though. Host code needs to be modified and device code needs to be rewrite in a special way to get any reasonable performance out of them. (FPGAs are very sensitive to optimization). Also unfortunately, AMD only wants to maintain MIOpen for their platform. So any bug discovered on other device are not accepted, thus most of my changes can’t be up-streamed until I got a AMD GPU to test MIOpen (Which is super expensive thanks to Etherium).
Here is my version of MIOpen that runs on any OpenCL device. Contribution is welcomed. Please leave a message or send me a mail if you want me to test MIOpen on any device/ need support or if you just want to chat. You are welcomed.
Wish for competition in the future.