3 ms·
No, I mean for writing new code. I know that FFT is already in the libraries, I was using it as an example. About 200 LoC in CUDA, and 1200 lines of code in ROC
by atemerev 3y ago
No, I mean for writing new code. I know that FFT is already in the libraries, I was using it as an example. About 200 LoC in CUDA, and 1200 lines of code in ROCm. ROCm is boilerplate-ridden and hardly usable for new code.
- westurner 3y agoThat's a contrived example, then. Also because there's already an optimized version of FFT in their libraries. At least with open-source AMD code, it can be fixed with Pull Requests. FWIU, OpenCL is insufficient, CUDA is the closed-source fanboy favorite that the industry can't move away from, and Intel OneAPI may be the most portable but not the most performant. Impact-wise, contributing to the ROCm and OneAPI tools to help them be more competitive is in consumers' interest.
- atemerev 3y agoThe industry can't move from CUDA because you can easily write anything in CUDA, as opposed to ROCm. I needed once to write a lattice Boltzman CFD simulation, it is so much easier in CUDA compared to ROCm, I wouldn't even start the latter unless I am forced to. Eveything takes 5x amount of code and 5x amount of time. ROCm is bad API design, and no amount of gradual tinkering will save it. I wonder why AMD can't design something better. HIP exists, but it is a "lesser CUDA" (CUDA is actually a mediocre API, we can design things much better than that now).
- westurner 3y agoWhat was the difference in runtime performance, and did you try CuPy? https://github.com/cupy/cupy https://github.com/cupy/cupy : > CuPy is a NumPy/SciPy-compatible array library for GPU-accelerated computing with Python. CuPy acts as a drop-in replacement to run existing NumPy/SciPy code on NVIDIA CUDA or AMD ROCm platforms. Projects using CuPy: https://github.com/cupy/cupy/wiki/Projects-using-CuPy https://github.com/cupy/cupy/wiki/Projects-using-CuPy