RX 6600 은 현재 AMD 에서 공식적으로 지원하는 아키텍처가 아니므로 아주 트릭키한 방법으로 실행해야 한다. 가장 먼저 해야 하는 것은 RCCL 을 직접 빌드하는 일이다.
그러나, RCCL 을 빌드하는 것은 정말 죽음으로 어려운 일이다. RCCL 의 빌드를 어렵게 만드는 요인은 다양하지만 그중 가장 일은 복잡하게 만드는 요인은 바로 배포판마다 패키지의 설치 경로가 다르다는 점이다. 아마 Ubuntu 라면 그나마 쉽게 설치가 가능하겠지만 Fedora 의 경우 빌드 과정에서 삶과 죽음의 경계를 오고가는 경험을 하게 될 것이다.
하지만 안심하라. 필자는 살아 남았다. 나를 죽이지 못하는 고통은 나를 더 강하게 한다고 했던 니체의 말을 떠올려라.
RCCL 을 빌드하기 위해선 다양한 패키지의 설치가 선행되어야 한다. 필자의 경우 기존의 있던 rccl 패키지를 모조리 지우고 새롭게 설치했다:
sudo dnf remove rccl rccl-devel rccl-data
sudo dnf install \
rocm-core-devel \
hipcc rocminfo rocm-hip \
rocm-hip-devel rocm-smi-devel \
gcc-c++ hipify-perl
Fedora 42 에서 25년 06월 18일 확인해본 결과 정말 최소한의 패키지 리스트이다. 이것만 설치해도 빌드는 가능하다.

git clone https://github.com/ROCmSoftwarePlatform/rccl.git
cd rccl
git checkout -b build-rccl tags/rocm-6.3.1
버전은 여기에서 확인: https://github.com/ROCm/rccl/releases
가장 먼저 git clone 명령어를 통해 RCCL 프로젝트를 clone 한다. git tag 명령어를 입력해 적절한 RCCL 버전의 tag 로 checkout 한다. 만약 통신할 두 노드의 RCCL 버전이 다르게 되면 통신에 실패하므로 주의하길 바란다.

보통은 이렇게 rocm 버전을 동일하게 해주는 것이 좋다.
rocm_version.h
현재 rocm_version.h 헤더파일 설치 경로가 코드의 설치 경로와 맞지 않아 발생하는 문제가 있다. 따라서 src/include/hip_rocm_version_info.h 파일의 #include <rocm-core/rocm_version.h> 라인을 #include <rocm_version.h> 으로 변경해주어야 한다.
mkdir build
cd build
빌드를 위해 빌드 전용 디렉토리를 생성한다.

sudo mkdir -p /opt/rocm/.info/
sudo echo "6.3.3" | sudo tee /opt/rocm/.info/version
빌드하기 전에 잠깐! /opt/rocm/.info/ 디렉토리를 생성하고 version 이라는 파일을 만들어서 거기에 버전을 기입해야 한다. 왜 그래야 하는지는 필자도 모른다. 다만 그래야 빌드가 된다. checkout 할 때에 썼던 tag 의 버전을 파일에 기입하면 된다. 필자의 경우는 6.3.3 이 된다.
sudo dnf install make cmake which
sudo dnf install clang-tools-extra
sudo dnf install python3-pip
pip3 install black
sudo dnf install numactl-devel rdma-core-devel
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/rccl-gfx1030 \
-DCMAKE_CXX_COMPILER=$(which hipcc) \
-DRCCL_ROCPROFILER_REGISTER=OFF \
..
make -j$(nproc) # 대단히 오래 걸린다.
# 마지막 librccl linking 과정이 제일 오래 걸리는데 그게 정상이다.
sudo make install
RCCL 테스트하기 우선 RCCL 을 사용하기 위해선 커널의 iommu=pt 옵션이 켜져 있어야 한다. 다음의 과정을 통해 iommu 를 활성화한다:
sudo vi /etc/default/grub
# 파일에서 다음 라인을 수정:
# GRUB_CMDLINE_LINUX="<생략> iommu=pt"
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
완료했다면 재부팅하면 된다. 또한 RX 6600 에서 RCCL 을 사용하려면 환경변수로 HSA_OVERRIDE_GFX_VERSION=10.3.0 을 추가해야 한다. 또한 프로그램에게 LD_LIBRARY_PATH 로 rccl 을 설치한 경로를 지정해야 한다. 이는 LD_LIBRARY_PATH 를 지정하는 것으로 해결할 수 있다.
HSA_OVERRIDE_GFX_VERSION=10.3.0 NCCL_DEBUG=INFO LD_LIBRARY_PATH=/opt/rccl-gfx1030/lib/ <실행항 프로그램>

RX 6600 과 7700 XT 가 서로 통신하는 것을 확인할 수 있다.