4 ms·
Maybe in theory but in practice we see poor performance using OpenCL to target CPU devices (much worse than our reference C++ code)
by Ono-Sendai 11y ago
Maybe 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).