3 ms·
Here is the main problem IMO: To get reasonable performance (i.e. comparable to GPU), you need to make use of vector instructions as well. And it's still not ea
by m_mueller 10y ago
Here is the main problem IMO: To get reasonable performance (i.e. comparable to GPU), you need to make use of vector instructions as well. And it's still not easier to vectorize your x86 code rather than to just port it to CUDA. With CUDA you get two parallelisms done in one programming paradigm: Both vector and multiprocessor parallelism just gets mapped to the kernel scatter initialisation, and the kernel itself is just written as a scalar operations plus some index calculations. In terms of readability / ease of use it's [naive x86] > [CUDA] > [performance portable parallelized + vectorized x86]. An if you don't have the last version of x86, which almost noone has, then Xeon Phi will be just as much portation work as GPU, if not more (because Nvidia has a considerable lead in tooling support and has actually even gained more lead since Intel's Phi came out because Intel is just not very agile).
- gcp 10y agoAnd it's still not easier to vectorize your x86 code rather than to just port it to CUDA. This a million times! The SIMT programming model that the GPUs (except Intel's) support so well is way easier to program and parallelize for than the explicit SIMD that x86 requires. PS. Are you the person that wrote gogui?
- m_mueller 10y agoNope, but I'm writing this: https://github.com/muellermichel/Hybrid-Fortran https://github.com/muellermichel/Hybrid-Fortran