4 ms·
They link to a conference paper for the full technical details: "ispc: A SPMD Compiler for High-Performance CPU Programming", https://cloud.github.com/downloads
by scott_s 11y ago
They link to a conference paper for the full technical details: "ispc: A SPMD Compiler for High-Performance CPU Programming", https://cloud.github.com/downloads/ispc/ispc/ispc_inpar_2012.pdf https://cloud.github.com/downloads/ispc/ispc/ispc_inpar_2012...
- wyldfire 11y ago> GPU-oriented languages like OpenCL support SIMD but lack capabilities needed to achieve maximum efficiency on CPUs and suffer from GPU-driven constraints that impair ease of use on CPUs. IMO these constraints are overstated and OpenCL offers a good abstraction for CPUs too.
- Ono-Sendai 11y agoMaybe in theory but in practice we see poor performance using OpenCL to target CPU devices (much worse than our reference C++ code)
- 14113 11y agoI wonder if that could just be poor quality OpenCL implementations on CPUs rather than an inherent limitation of OpenCL?
- Ono-Sendai 11y agoThe quality of implementation (compiler) does make a big difference, yes.
- keldaris 11y agoThis used to be a fairly universally held opinion, but recently I've begun to see fairly optimistic results reported in the literature (see [1] for an example study, unfortunately not open source). As someone who writes numerical simulation code for a living, I've started to get curious about OpenCL for the use case of rapidly developing code that's reasonably performance portable between Xeon-based and GPU workstations. Since you seem like you have some experience with testing performance portability with OpenCL and other solutions, I'd be curious to hear if you have any comments about the reference I linked or more general suggestions for alternative means to achieving the same end (performance portability between CPU/GPU architectures at the workstation level). [1] http://iwocl.org/wp-content/uploads/iwocl-2014-tech-presentation-Simon-Mcintosh-Smith.pdf http://iwocl.org/wp-content/uploads/iwocl-2014-tech-presenta...
- Ono-Sendai 11y agoHi, I would say it depends on the kind of code you are working with. Our code is quite branchy and somewhat complicated.(3d rendering software) For simpler code that does e.g. lots of the same thing on a regular grid, OpenCL might work better than it does on our code (targetting CPUs).