Hello,
I've been working with Étienne Mollier and others on the Debian
AI team to enable ROCm in Debian. I believe it would now be
possible to build Blender with HIP support for AMD GPUs using the
HIP package in Debian Unstable. The Debian HIP package still has a
few rough edges that need cleaning up, but is fully functional.
The rocRAND package [1] is an example of a library that is built
using HIP.
The CMake options to enable AMD HIP support in Blender [2] are:
-DWITH_CYCLES_HIP_BINARIES=ON -DCYCLES_HIP_BINARIES_ARCH=gfx1030
There are a few environment variables that are (temporarily)
required to compile HIP code using the Debian package. Étienne
and I are working towards eliminating the need for them [3], but
they're required for the moment:
export HIP_CLANG_PATH=/usr/bin export DEVICE_LIB_PATH=/usr/lib/${DEB_HOST_MULTIARCH}/amdgcn/bitcode export ROCM_PATH=/usr
You will also need to add a few packages to the Build-Depends:
hipcc
libamd-comgr-dev
libhsa-runtime-dev
rocminfo
I'm not sure what tests there are for GPU functionality in
Blender, but my understanding is that the Debian build and test
system is not really set up to handle tests that require GPUs
anyway. Christian Kastner has expressed interest in tackling that
problem, though it sounds like a big job. HIP support would
therefore need to be tested manually for the moment. If you don't
have compatible hardware to test with, I believe there is going to
be a porterbox available.
I'd be happy to answer any questions that folks may have about enabling HIP support in Blender (or other libraries and applications). I'm an AMD GPU libraries engineer and have been writing code in HIP for the past few years. My real job is the development of the ROCm mathlibs, but I'm a fan of both Blender and Debian and I like to help where I can. ROCm has historically been tricky to install and use, so I've made it a bit of a personal mission to try to facilitate its packaging and distribution.
I suppose I should probably file a bug on the blender package for
this, but I figured this topic was probably broad enough to be of
general interest for the mailing list. I'm still not very familiar
with Debian etiquette, so please feel free to correct me if I make
any mistakes. I'm still learning about the way you folks work.
Sincerely,
Cordell Bloor
[1]: https://salsa.debian.org/rocm-team/rocrand
[2]: gfx1030 is the ISA for Navi 21. You may want to expand that
architecture list for the final package, but the initial building
and testing of the package will be faster with a single
architecture.
[3]: https://salsa.debian.org/rocm-team/rocm-hipamd/-/merge_requests/1