ogmacorp / OgmaNeo

Ogma - OgmaNeo

Home Page:https://ogma.ai/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Design considerations for using OpenCL

HJLebbink opened this issue · comments

Question. What are (or were) the design considerations for using OpenCL.

Are they technical reasons (speed, available memory on GPU, etc), or strategic (portability, GPU is a unused resource on most computers, future will bring more compute power (GPU) in handhelds, etc), or personal (I've done this before, I've not done this before).

Why am I asking? I've worked with Fortran code that was written before I was born, and I've thrown away my CUDA code within a year because my gtx295 became obsolete (in 2010). Obviously my code would still be functional had I used OpenCL, but I'm not convinced that OpenCL would have given me portability AND speed advantages which forced me to use CUDA. The OpenCL part adds a lot of technical complexity to this interesting project. I have feeling that the speed advantages are not that large (with comparable $ budget) compared to properly written C++ or Fortran. I haven't measured this, thus I could be horribly wrong. I'm likely missing one of your design considerations.

Regards HJ!

Hi @HJLebbink Our use of OpenCL includes the strategic and personal aspects you mention. It's historically familiar to us, adding portability and ability for OgmaNeo to run on a variety of platforms and devices. We've been closely following a variety of technologies and groups/organisations, such as Intel, AMD, Arm, Khronos, Altera, and Xilinx, etc. As other maturing technologies develop, such as SYCL, a decision will need to be made as to whether to stick with OpenCL for OgmaNeo.

Hi @rcrowder, Thank you for the insights; familiarity and portability do makes business sense. As said, I'm just interested how this approach works, and where it spends its compute cycles.