clMathLibraries / clFFT

a software library containing FFT functions written in OpenCL
Apache License 2.0
619 stars 192 forks source link

OpenCL 2.0 / SVM support? #217

Open lukasberbuer opened 6 years ago

lukasberbuer commented 6 years ago

Hi, are there plans for OpenCL 2.0 / Shared Virtual Memory support in the near future? Especially the use of coarse grained svm would be very handy on AMD APUs.

tingxingdong commented 6 years ago

clFFT is under maintenance mode. So no active development. AMD encourage developer switch to ROCM using rocFFT: https://github.com/ROCmSoftwarePlatform/rocFFT

lukasberbuer commented 6 years ago

Thanks for clarification. If I look at ROCm, there is rocFFT (based on HIP) or hcFFT (hcc). Is it time to say bye to classic C + OpenCL?

tingxingdong commented 6 years ago

use rocFFT no hcFFT. We recommend user to use rocFFT but not say goodbye to clFFT yet.

bragadeesh commented 6 years ago

clFFT can run on rocm as well; we are pointing everyone to use the rocm stack. But as mentioned, clFFT is not actively developed, rocFFT at some point will catch up to clFFT in terms of features and performance.

TillAlex commented 6 years ago

I do not really understand why AMD seems to be turning it's back on OpenCL. It was great to have platform independent HPC libraries like clFFT and clBLAS and I wished there were more. Using rocFFT I have to compile different binaries for AMD and Nvidia (what about CPUs or Intel GPUs?). If now all vendors go back to platform specific solutions probably most developers will turn to the most evolved solution, which unfortunately is CUDA.

bragadeesh commented 6 years ago

@TillAlex I agree that OpenCL is great for portability for many of our users; but a lot of what we do is dictated by market demands and adoptions, and unfortunately opencl has not had that wide traction. Please note we still try to support clFFT and opencl runs on rocm stack.

tingxingdong commented 6 years ago

you can run rocFFT on Nvidia GPU. rocFFT is written in HIP. HIP can run on NVIDIA GPU. https://github.com/ROCmSoftwarePlatform/rocFFT/wiki/Setting-up-enviroment-on-NVIDIA-platform

lukasberbuer commented 6 years ago

Thanks for your replies. After a lot of research, I'm still confused about the right choices between HIP, HCC and OpenCL (https://goo.gl/xYkMFv had some good hints though).

To make in more specific: We plan heavy signal processing (fft, filtering, clustering, ...) on a embedded Ryzen V1000 and need to utilize the APU efficiently. HIP doesn't make sense, because we won't port to CUDA. So it's the choice between HCC (using rocFFT) and C+OpenCL (using clFFT).

What would be your choices for an embedded system regarding long time support (~10 years)? (Sorry for getting offtopic.)