3 ms·
Tensorflow has a mode that lets it run on CPUs. I'm sure other frameworks are the same. Isn't the whole point of Xeon Phi that it looks basically like an x86
by jlebar 10y ago
Tensorflow has a mode that lets it run on CPUs. I'm sure other frameworks are the same. Isn't the whole point of Xeon Phi that it looks basically like an x86 CPU with a ton of cores? If so there is almost nothing to port, just the kernel launching.
Granted, you do have to bother to make a fast x86 / AVX-512 port of your code. But because the shape of GPUs is so different than CPUs -- GPUs have a more complicated memory hierarchy for one thing -- I kind of doubt that "just run your CUDA code in the Phi" is going to work well for nontrivial examples.
(Disclaimer, I work at Google on CUDA support in clang. Which is awesome, you should try it out. :) Google "cuda clang" for instructions.)
- jlouis 10y agoTo elaborate: Tensorflow is clever because it takes your flow graph and cuts it into pieces which it then executes on computational units. Any computational unit will do, really as long as you have a backend for it. This choice makes adaptation to new system much easier. I believe Caffe and Theano uses the same model, but I didn't study it. There are also some similarity in the model to what OCaml does with the incremental library, though it is not for machine learning.
- cs702 10y ago"Granted, you do have to bother to make a fast x86 / AVX-512 port of your code." That is exactly the problem: no one has bothered to make a fast x86 / AVX-512 port for any of the most popular frameworks (at the upstream level, not in some fork), and no one has an incentive to bother, other than Intel. For example, as far as I know, none of the popular frameworks take advantage of Intel's MKL out of the box. Right now, if you want out-of-the-box high performance, Nvidia hardware is your only practical choice.