[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hello from ROCm



Once you leave the ROCmSoftwarePlatform organization on GitHub, my knowledge drops off quite a bit (especially with regards to OpenCL, which is not used in the ROCm BLAS stack). However, I'll answer the best I can at this point, and update you if I learn more.

I would recommend taking a look at the Spack packages (https://github.com/spack/spack) for rocm libraries. They are currently up-to-date with rocm-4.1.0 and I think they may implicitly answer some of your questions.

* build order
  it is not really clear in which order what should be build
  I have done something like
	rocm-cmake
	roct-thunk-interface
	rocr-runtime
	rocm-llvm
	rocm-devicelibs (using the rocm-llvm from above)
	rocm-compilersupport (not sure whether that worked)

This is how I was building for rocm-3.9.0. There is a repository with some of the build scripts I used (https://github.com/cgmb/rocm), though the Spack packages are almost certainly a better reference.

* llvm-*: there are many upstream repositories and it is not
  clear which of those need to be used.

At least for 3.9.0, the only one that was absolutely necessary to get BLAS working was ROCm-Developer-Tools/llvm-project. I will have to ask about the others, as I'm curious about this too.

Furthermore, how far has the integration into llvm upstream proceeded.

I'm pretty disconnected from that effort, but it appears to be ongoing. I sometimes use the public LLVM documentation as a reference for looking up AMDGPU-related flags. However, I can tell you that rocSOLVER does not support building with the upstream LLVM compiler. We do not build or test with it. Our expectation is that rocSOLVER for rocm-4.1.0 is built with the copy of clang shipped with rocm-4.1.0.

Sincerely,
Cordell Bloor

On 2021-03-23 8:21 p.m., Norbert Preining wrote:
Well, I list what roadblocks I have encountered:
* build order
   it is not really clear in which order what should be build
   I have done something like
	rocm-cmake
	roct-thunk-interface
	rocr-runtime
	rocm-llvm
	rocm-devicelibs (using the rocm-llvm from above)
	rocm-compilersupport (not sure whether that worked)

* llvm-*: there are many upstream repositories and it is not
   clear which of those need to be used.
   Furthermore, how far has the integration into llvm upstream proceeded.

* rocclr seems to need amd opencl, and opencl needs rocclr
   at least the last time I checked there seem to have been some
   circular dependencies


Reply to: