하드웨어 스펙은 충분한데 소프트웨어가 막혀 있어 쓰지 못하는 장비만큼 답답한 것은 없다. 특히 AI 모델을 돌리기에 충분한 VRAM을 가졌음에도 제조사가 의도적으로 기능을 제한한 '채굴 전용 GPU'가 그렇다. NVIDIA의 CMP 100-210은 16GB의 HBM2 메모리를 탑재하고도 텐서 코어 속도가 64배나 느리게 설정되어 사실상 일반적인 AI 추론 도구로는 사용할 수 없는 상태였다.
vLLM이나 llama.cpp 같은 표준 라이브러리를 실행하면 속도가 처참하게 떨어지거나 시스템이 그대로 멈춰버린다. 다이에 박힌 e-fuse 방식의 제한이라 펌웨어 수정으로도 풀 수 없다. 64만 원 상당의 하드웨어가 무용지물이 되는 상황에서, 표준 경로를 완전히 우회해 '작동하는 경로'만 골라 짠 커스텀 엔진 'Show GN'이 등장했다.
DP4A 커널과 3-bit KV 캐시로 뚫어낸 CMP 100-210의 제약
일반적인 AI 가속기는 텐서 코어(Tensor Core, 행렬 연산 전용 하드웨어)를 통해 속도를 높이지만, CMP 100-210은 이를 정반대로 막아두었다. 하드웨어 설계 단계에서 e-fuse를 통해 제약을 걸어 펌웨어 수정으로도 풀 수 없는 구조다. 텐서 코어의 지연 시간(Latency)은 일반적인 8사이클에서 512사이클로 64배 늘어났다. PCIe Gen1 x1 인터페이스를 사용하며 GPU 간 직접 통신인 P2P(Peer-to-Peer) 기능도 비활성화되어 있다. CUPTI(CUDA Profiling Tools Interface)까지 차단되어 `torch.profiler` 같은 분석 도구조차 사용할 수 없다. 이 때문에 vLLM이나 llama.cpp 같은 기존 추론 엔진을 그대로 올리면 속도가 64분의 1로 떨어지거나 시스템이 멈춘다.
개발자는 텐서 코어를 거치지 않는 별도의 추론 경로를 설계해 이 제약을 우회했다. GEMM(General Matrix Multiply) 연산에는 텐서 코어 대신 DP4A(Dot Product 4 Add, int8 연산 명령어) 기반의 자작 커널을 적용했다. 텐서 코어의 가속 기능을 포기하는 대신 int8 정밀도의 연산 명령어를 직접 제어하는 방식으로 텐서 코어의 의존성을 완전히 제거하고 17 TFLOP의 연산 성능을 확보했다. 어텐션(Attention) 연산에서는 자작 FlashAttention에 MInference 스타일의 블록-스파스(block-sparse) 방식을 결합했다. 모든 데이터를 계산하지 않고 필요한 블록만 선택적으로 처리해 연산 부하를 줄이는 구조다. 텐서 코어라는 고속도로가 막히자 국도 수준의 연산 명령어를 최적화해 속도를 끌어올렸다.
GPU 간 통신과 메모리 효율에서도 하드웨어 한계를 소프트웨어로 메웠다. P2P 통신이 불가능한 점을 해결하기 위해 pinned-host(메모리 고정 호스트) 기반의 hidden state bridge를 구현했다. GPU가 직접 데이터를 주고받는 대신 시스템 메모리를 징검다리로 활용해 데이터를 전달하는 방식으로 통신 경로를 재설계했다. KV 캐시(Key-Value Cache)에는 WHT(Walsh-Hadamard Transform)와 Lloyd-Max 양자화 기법을 적용한 3-bit KV 캐시를 도입했다. 256K 컨텍스트 기준 17GB에 달하던 메모리 점유율을 3.5GB까지 낮췄다. 메모리 대역폭이 매우 낮은 PCIe Gen1 환경에서 전송해야 할 데이터의 절대량을 물리적으로 줄여 병목 현상을 완화했다.
이렇게 설계한 전용 엔진은 기존 범용 빌드보다 높은 수치를 기록했다. llama.cpp build 8462와 동일한 Q8_0 GGUF 모델로 비교했을 때, 9B 모델 단일 GPU 프리필(Prefill) 속도는 1.22배에서 2.99배까지 빨라졌다. 27B 모델을 3장의 GPU로 구동한 프리필 속도는 1.45배에서 2.86배의 성능 향상을 보였다. 텍스트 생성(Generation) 속도 역시 기존 대비 30%에서 50% 정도 속도가 개선되는 결과로 이어졌다. 하드웨어가 강제한 저속 경로를 피해 최적의 연산 경로를 직접 짰을 때 얻은 결과다.
llama.cpp 대비 최대 2.99배 빠른 Qwen3.5/3.6 추론 성능
저렴한 GPU로 대형 모델을 구동하려 할 때 표준 라이브러리가 작동하지 않아 화면이 멈추거나 속도가 극단적으로 느려지는 경험이 있다. CMP 100-210 GPU 4장을 활용한 환경에서 텐서 코어(Tensor Core)의 지연 시간이 8사이클에서 512사이클로 늘어나며 연산 성능이 64배 하락했다. PCIe Gen1 x1 인터페이스와 P2P(Peer-to-Peer) 통신 부재, CUPTI(CUDA Profiling Tools Interface) 차단까지 겹쳐 vLLM이나 llama.cpp 같은 표준 라이브러리는 정상 작동하지 않는다. 하드웨어 제조사가 e-fuse로 물리적으로 막아놓은 제약 때문에 펌웨어 수정으로도 해결할 수 없는 상황이다. 저가형 하드웨어에서 표준 소프트웨어 스택이 무력화된 지점에서 전용 추론 엔진의 필요성이 발생했다.
개발자는 텐서 코어의 병목을 피해 DP4A(int8) 기반의 자작 GEMM 커널을 구현해 17 TFLOP의 성능을 확보했다. 어텐션 연산에는 자작 FlashAttention과 MInference 스타일의 블록-스파스(block-sparse) 방식을 도입했다. P2P 통신이 불가능한 하드웨어 특성을 고려해 GPU 간 데이터 전송은 pinned-host를 통한 hidden state bridge 방식으로 처리했다. 특히 256K 컨텍스트를 처리하기 위해 WHT(Walsh-Hadamard Transform)와 Lloyd-Max 양자화를 적용한 3-bit KV 캐시를 사용했다. 이를 통해 메모리 점유율을 17GB에서 3.5GB로 낮춰 저용량 VRAM 환경에서도 긴 문맥 유지가 가능하게 만들었다.
성능 측정 결과는 llama.cpp(build 8462, Q8_0 GGUF)와 비교했을 때 뚜렷한 차이를 보인다. Qwen3.5/3.6 hybrid (GDN + Attention) 9B 모델의 단일 GPU 프리필(prefill) 속도는 llama.cpp 대비 1.22배에서 최대 2.99배까지 향상됐다. 27B 모델을 3장의 GPU로 구동했을 때의 프리필 성능 역시 1.45배에서 2.86배 더 빠르게 측정됐다. 텍스트 생성(Generation) 속도는 전반적으로 30%에서 50% 정도 개선됐다. 표준 라이브러리가 하드웨어 제약으로 제 성능을 내지 못하는 환경에서 커스텀 커널이 실질적인 속도 향상을 끌어낸 결과다.
기능적으로는 OpenAI 호환 API와 스트리밍, 툴 콜(tool calls), 비전 기능(mmproj), `/no_think` 옵션을 모두 지원한다. 다만 모든 모델에 적용되는 것은 아니다. MoE(Mixture of Experts) 구조의 모델은 지원하지 않으며 dense hybrid 모델만 구동 가능하다. 양자화 역시 Q8_0 방식만 정식으로 지원하며 DFlash 같은 일부 기능은 드래프터 미스매치(drafter mismatch) 문제로 작동하지 않는다. A100이나 H100 같은 고성능 GPU 환경에서는 vLLM이 더 빠르지만, 제약이 많은 저가형 하드웨어에서는 이 엔진이 실용적인 대안이 된다.
채굴용으로 쓰이던 구형 GPU가 고등학생이 개발한 CUDA 엔진 최적화를 통해 AI 연산 장치로 재탄생했다. 고가의 최신 GPU 수급난과 비용 부담이 임계점에 도달한 상황에서, 유휴 하드웨어의 자원 효율을 극대화해 실질적인 연산 성능을 끌어낸 결과다.
이는 단순히 비용 절감을 넘어 하드웨어의 한계를 소프트웨어로 극복하는 가능성을 보여준다. 결국 AI 인프라의 경쟁력은 장비의 체급이 아니라 데이터를 처리하는 최적화 설계 능력에서 결정된다.




