본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 21. 14:53

AMD BC-250과 저렴한 컴퓨팅 자원을 찾아서

요약

저렴한 컴퓨팅 자원을 찾던 중 발견한 PS5 APU 기반의 BC-250 보드에서 비활성화된 CU(Compute Unit)를 해제하는 방법을 공유합니다. amdgpu 소스 코드 분석을 통해 특정 레지스터를 조작하여 24개의 CU를 활성화할 수 있으며, 이를 통해 가성비 높은 추론 환경을 구축할 수 있습니다.

핵심 포인트

  • eBay에서 저렴하게 구할 수 있는 PS5 APU(Zen 2, RDNA 2)를 활용한 컴퓨팅 자원 확보
  • amdgpu 드라이버의 특정 레지스터 조작을 통한 비활성화된 CU(Compute Unit) 잠금 해제
  • Vulkan 및 HIP 백엔드를 이용한 llama.cpp 성능 테스트 결과 공유
  • gfx1013 전용 커스텀 HIP 커널 개발을 통한 프리필(prefill) 성능 최적화 진행 중

MI50의 가격이 급등한 이후 몇 달 동안 저는 사용되지 않거나 저평가된 컴퓨팅 벡터(compute vectors)를 찾아 헤매고 있었습니다. 그러다 단독 보드 형태로 나온 회수된 PS5 APU가 등장했습니다. Zen 2, 16 GB 통합 GDDR6, RDNA 2 (gfx1013) 사양입니다. eBay에서 50~150달러 사이에 판매되고 있으며, 40개의 CU 중 24개만 활성화된 상태로 배송됩니다.

궁금증이 생겨 amdgpu 소스 코드를 읽기 시작했습니다. 확인 결과, 두 개의 레지스터가 CU 가용성을 제어하고 있었습니다:

  • CC_GC_SHADER_ARRAY_CONFIG: 드라이버에 CU가 몇 개 존재하는지 알려줍니다.
  • SPI_PG_ENABLE_STATIC_WGP_MASK: 셰이더 프로세서(shader processor)에 작업을 어디로 보낼지 알려줍니다.

알고 보니 두 레지스터 모두 드라이버 초기화 경로 내부에서 하드웨어 레지스터를 지움으로써 쓰기가 가능했습니다. 둘 다 설정해야 하며, 하나만 설정해서는 아무런 효과가 없습니다.

pp512 수치 (Vulkan, llama.cpp):

설정tok/s전력온도
24 CU @ 1500 MHz23055W71C
...

또한 gfx1013를 위한 커스텀 HIP 커널(kernel) 작업도 진행 중입니다. 현재 전용 커널이 없으며, tensile에서도 사용할 수 있는 최적화가 없기 때문입니다. HIP은 이미 토큰 생성 속도에서 Vulkan을 앞서고 있습니다 (9B 모델 기준 48 vs 30 tok/s). 프리필(prefill)은 아직 뒤처져 있지만 격차를 줄여가고 있습니다. Vulkan 백엔드는 fp16 FMA 역양자화(dequant)를 사용하는데, 이는 HIP의 int8 dp4a 경로와 맞추기 어렵습니다. 하지만 저희는 RADV 컴파일러가 수행하는 방식에 맞춰 데이터 흐름을 재구성하는 커스텀 MMQ 커널을 구축하고 있습니다. 초기 결과는 유망하며, 이미 기준이 되는 HIP 대비 Q6_K에서 +63%의 pp(prefill) 성능을 확보했습니다.

리포지토리(repo): https://github.com/duggasco/bc250-40cu-unlock

이 보드를 보유하고 계시다면 디스코드(discord)로 오세요: discord.gg/8eZfFWhczz

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0