I am a software developement engineer in AMD and we are currently working on enabling support AMD GPUs in Eigen.
We envision that support for the AMD GPUs can be implemented in fashion similar to what has already been done for NVidia with CUDA. I have some initial questions w.r.t. this task:
1. What is the purpose of the "EIGEN_USE_GPU" macro in the codebase? I see a lot of code that is guarded by the EIGEN_CUDACC (guards code that uses CUDA extensions) and EIGEN_CUDA_ARCH (guards code that is expected to execute on the device) macros, which I think I understand. What I am not clear about is the need/use for the EIGEN_USE_GPU macro.
2. How do I configure cmake to
- build Eigen with GPU / CUDA support?
- enable all the unit tests that target the GPU/CUDA?
I want to make sure that our implementation is consistent with what is already in place for CUDA, and hence the need to understand the CUDA implementation.
Any information regarding this will be very helpful.
3. What is the correct protocol to use for upstreaming our code (once done) to the Eigen codebase? Will a simple pull request suffice, or do we need to do something more? Is there some acceptance criteria/checklist we need to complete, before we can can issue the PR?
Please let me know if this is not the correct forum to address these questions (and point me to the right one :) ) I expect to have a quite a few more questions in the coming days, as we