BC-250 보드 500달러어치로 Next Flash IQ3_XXS 100k 컨텍스트에서 약 70 tok/s, Qwen 3.6 35B A3B IQ4 256k에서 약 145 tok/s 달성
Running Next Flash IQ3_XXS at ~70 tok/s with 100k context or 2 instances of Qwen 3.6 35B A3B IQ4 at ~145 tok/s with 256k all on $500 of ex mining BC-250 boards
핵심 요약
BC-250 보드 클러스터를 활용해 저비용으로 고성능 로컬 AI 환경을 구축하고 최적화한 사례입니다.
- 하드웨어 구성 — 500달러 상당의 BC-250 보드 4개와 2.5Gb 이더넷을 활용한 클러스터 구축함.
- 성능 최적화 — Vulkan 및 RPC, Speculative decoding 등을 통해 컨텍스트 처리 속도와 효율을 극대화함.
- 발열 관리 — 고성능 활용 시 발생하는 쓰로틀링 문제를 해결하기 위해 수랭 쿨링 시스템 도입 예정임.
- 향후 계획 — 최적화 내용을 담은 깃허브 공개 및 3D 프린팅을 활용한 전용 쿨링 케이스 제작 예정임.
bc-250 클러스터 관련해서 벌써 세 번째 업데이트네. 로컬 AI 처음 건드려보는 건데 진짜 존나 재밌다. 주말에 심심풀이로 시작한 게 이제는 앞으로 계속 쓸 것 같은 수준까지 왔음. 지금 BC-250 보드 4개를 2.5gb 이더넷 어댑터로 2.5gb 스위치에 연결해서 llama, vulkan, RPC 조합으로 돌리는 중이야. 보드들은 원래 들어있던 asrock 4u12g bc250 케이스에 그대로 박아놨고. 처음엔 flash next Iq2에서 30 tok/s, 3.6 35B에서 80 tok/s 나오던 게 Claude Code를 클러스터에 붙여서 굴려보니까 이제는 더 나은 quant next flash도 돌아가고, 컨텍스트 유지하면서 60-70 tok/s (~150 ppt) 정도 뽑아준다. 보드 4개로 3.6 35B 인스턴스 2개를 동시에 돌리면 시작할 때 145tok/s (~450 ppt) 나오고, 150k 컨텍스트까지 가면 100 tok/s 밑으로 떨어짐. 살 때는 보드당 100달러도 안 줬는데, 요즘 알리 보니까 150달러 정도 하더라. 지금 전력 측정기 달아놨는데 next flash 풀로드 걸리면 600~700W 먹고, 3.6 35B 인스턴스 2개 돌리면 800~900W까지 튐. 다음 단계는 보드마다 AIO 쿨러 달아주는 거임. 보드 활용도가 올라가니까 쓰로틀링 걸리는 게 눈에 보여서. 클러스터 계속 쓸 거니까 케이스 뚜껑도 3D 프린터로 뽑아서 AIO 쿨러용으로 새로 만들 생각이다 (지금은 박스 종이로 대충 막아놨음 ㅋㅋ). 대역폭 늘리겠다고 m.2 네트워크 솔루션으로 업그레이드하라는 소리 할까 봐 미리 말하는데, 보드 간에 데이터를 한 번에 많이 보내는 게 아니라서 병목은 대역폭이 아니라 레이턴시임.
BC-250 정보: https://elektricm.github.io/amd-bc250-docs/
Claude가 요약한 최적화 내역은 다음과 같음:
Next Flash
현재 빌드는 100K 컨텍스트 구동 중:
-
해당 요청 시 59.4 / 65.2 tok/s (첫 번째 / 두 번째 실행)
-
5K 토큰 프롬프트 뒤에서 66.6-68.3 tok/s (샘플링, 512 토큰)
-
50,357 토큰 브라우저 생성 한 번에 72.6 tok/s
대부분 작업은 Q2_0 파일에서 먼저 진행했고 (5K 프롬프트에서 27.9 → 68-69 tok/s), 그 뒤에 IQ3로 옮겨옴:
-
모델 자체 MTP 드래프트 헤드를 사용한 추측 디코딩(Speculative decoding), 패스 체인으로 실행. 패스 A가 알려진 토큰을 검증함. 드래프트 두 개씩을 포함한 패스들이 보드 한 칸 뒤를 따라감 (드래프트 6개, 패스 4개). 첫 번째 거부된 드래프트에서 라운드 종료. 세 번째 패스를 추가해서 Q2_0 성능을 61에서 68 tok/s로 올렸고, 드래프트 6개로 IQ3 온도 0 편집 요청을 84.0에서 90.1-90.5로 끌어올림.
-
그래프 기록 및 재생. 워커들이 각 스테이지 그래프의 Vulkan 명령을 한 번 기록하고 그걸 재사용함 (그래프당 호스트 시간 3.7-4.5ms 절약, +2%). 원격 그래프 노드들을 재그룹화해서 레이어의 독립적인 결과물들이 배리어 그룹을 공유하게 함 (+5.7%).


