본문으로 건너뛰기
기술 소식을 빠르게 전달드립니다
HYUKHO

AI

InferSSD MoE 메모리 계층: SSD·RAM·GPU의 역할과 성능 확인법

InferSSD MoE 메모리 계층의 가중치 공급·캐시·연산 경로를 Mac·Metal과 Linux·CUDA로 나눠 설명합니다. 속도 추정과 실측의 차이, 공개 벤치마크를 해석할 때 확인할 조건도 정리합니다.

· · 4분 · AI

핵심 요약

  • InferSSD는 선택된 전문가 가중치를 SSD에서 읽고 재사용해 제한된 메모리에서 MoE 모델을 실행하도록 설계됐습니다.
  • Mac·Metal은 라우팅된 전문가 연산을 CPU에서 수행하며, Linux·CUDA는 GPU 캐시·실행 경로를 활용합니다.
  • profile의 속도 추정과 실제 벤치마크를 구분하고, 실측에서는 프리필·디코딩·전체 요청 시간·모델 로딩 시간을 나눠 봐야 합니다.
  • 공개 성능 수치는 장비 구성과 캐시 조건, 측정에 포함된 시간 범위를 함께 확인해야 해석할 수 있습니다.

InferSSD는 MoE 모델에서 그때그때 선택된 전문가 가중치를 SSD에서 공급하는 llama.cpp 기반 추론 엔진입니다. 모델 전체를 RAM이나 VRAM에 올리기 어려운 환경을 겨냥해, 필요한 가중치만 읽고 다시 쓰도록 설계됐어요. InferSSD MoE 메모리 계층을 이해하려면 가중치가 어떤 경로로 이동하는지, 어디에 캐시되는지, 실제 연산은 어느 장치가 맡는지부터 보는 게 순서입니다. 이 구성이 달라지면 같은 속도 수치도 다르게 읽어야 하거든요.

지원 환경은 Apple Silicon의 macOS·Metal, 그리고 NVIDIA GPU를 쓰는 Linux·CUDA입니다. 설치보다 먼저, 돌리려는 모델이 공식 README에 지정된 GGUF인지부터 확인해 두세요.

Mac과 CUDA는 무엇이 다른가

MoE의 라우터는 토큰마다 어떤 전문가를 쓸지 고릅니다. InferSSD가 관리하는 건 그 다음 단계예요. 선택된 전문가의 가중치를 어디서 읽어 어디에 캐시하고, 어느 장치에서 계산할지를 정합니다. 전문가를 고르는 일과 가중치를 옮기는 일을 따로 떼어 생각하면 플랫폼별 차이가 훨씬 잘 보입니다.

구분Mac·MetalLinux·CUDA
가중치 공급·캐시SSD에서 RAM 캐시로 읽기SSD 기반 공급에 GPU 캐시 계층 추가
라우팅된 전문가 연산CPU에서 수행GPU 캐시·실행 경로 활용
연산 경로의 특징GPU가 맡는 밀집 연산과 분리GPU 캐시와 전문가 실행을 함께 확인

흔히 헷갈리는 지점이 여기입니다. 모든 환경을 'SSD→RAM→VRAM→GPU' 한 줄로 설명해 버리면 Mac에서 실제로 벌어지는 일을 놓치게 돼요. Mac에서는 GPU가 얼마나 일하는지와 함께, 라우팅된 전문가 연산을 CPU가 맡고 있다는 점을 같이 봐야 합니다. 세부 경로는 공식 아키텍처 문서에 정리돼 있습니다.

전문가 팩은 기존 양자화 바이트를 그대로 두고, 가중치 조각을 레이어·전문가 단위로 묶어 4 KiB 경계에 맞춰 정렬합니다. 정밀도를 건드리는 게 아니라 SSD에서 읽어 올 단위를 정돈하는 방식이라고 보면 됩니다. 캐시는 한 번 읽은 가중치를 다시 쓰게 해 주고, 프롬프트 배칭은 여러 토큰이 같은 가중치 접근을 나눠 쓰게 해서 읽기 비용을 분산합니다.

먼저 속도를 추정하고, 실측은 프리필과 디코딩을 나눠서

처음 할 일은 모델을 둘 드라이브의 디렉터리를 지정해 inferssd profile --model <models directory>를 실행하는 것입니다. 지원 모델의 디코딩 속도를 추정해 주는 기능이고, 디렉터리가 비어 있으면 4 GiB 테스트 파일을 만들었다가 지웁니다.

왼쪽에는 여러 입력 타일이 함께 연산 모듈로 들어가고, 오른쪽에는 순환 화살표가 있는 모듈에서 출력 타일이 하나씩 나오는 모습이다. 각 장면 아래에는 별도의 스톱워치가 놓여 있다.
입력을 처리하는 구간과 출력을 이어 가는 구간에 각각 측정 기준을 둔다.

다만 이 값은 추정치일 뿐, 모델을 실제로 돌린 벤치마크와는 따로 읽어야 해요.

직접 측정할 때는 아래 순서로 조건을 고정해 두면 나중에 비교가 편합니다.

  1. 엔진 버전과 GGUF 리비전·양자화 형식을 고정합니다.
  2. SSD 연결 방식, RAM·VRAM 용량, 캐시 예산, 배치 크기, OS 캐시 조건을 기록합니다.
  3. 입력을 처리하는 프리필, 출력을 생성하는 디코딩, 전체 요청 시간, 모델 로딩 시간을 나눠 측정합니다.

프로젝트가 공개한 DeepSeek 결과를 보면 RTX 5090 구성의 디코딩이 7.270 token/s입니다. 이 숫자는 RAM 32 GB, VRAM 32 GB, PCIe 5 ×4 SSD를 쓴 특정 장비에서 나온 값이라는 조건과 한 묶음으로 읽어야 해요. 저라면 비교 대상보다 몇 배 빠르다는 표현보다 초당 생성 토큰 수와 요청 한 번에 걸리는 절대 시간을 먼저 보라고 권하겠습니다. 그래야 내 작업에서 실제로 얼마나 기다리게 될지 감이 옵니다.

공개 수치를 내 장비에 대입하기 전에

공개 벤치마크의 디코딩 속도는 출력 129~256번째 토큰을 기준으로 계산됐고, 전체 요청 시간에는 모델 로딩과 전문가 팩 생성 시간이 빠져 있습니다. Mac 결과는 OS 페이지 캐시를 비우지 않고 잰 값이에요. 그러니 이를 통제된 콜드 캐시 결과로 받아들이거나, 과거 상세 로그를 지금의 요약 수치를 낸 실행 기록으로 이어 붙여 해석해서는 안 됩니다. 측정 방법론을 같이 펼쳐 놓고 보는 걸 권합니다.

2026-11-05 조사 기준 버전은 v0.1.2이고, 그 이후라면 공식 변경 기록과 지원 모델 목록을 다시 확인해야 합니다.

모델별 최소 RAM·VRAM은 공식 문서에서 확인되는 범위 안에서 판단하세요. RAM을 늘리거나 SSD를 더 빠른 것으로 바꿨을 때 토큰 처리량이 얼마나 달라지는지는 공개 자료만으로 단정하기 어렵습니다. 장비 구매를 앞두고 있다면, 같은 모델과 실행 조건에서 캐시 예산이나 저장장치 조건만 바꿔 잰 측정값을 먼저 확보하는 편이 안전해요.

위쪽에는 드라이브 로딩, 타일 묶음 구성, 출력 타일의 순서가 이어지고 후반 출력 일부 아래에만 측정 괄호가 있다. 아래쪽에는 SSD, 데이터 타일이 남아 있는 RAM, GPU가 연결되어 있다.
측정 구간 밖의 준비 작업과 남아 있는 캐시도 수치 해석의 조건이다.

자주 묻는 질문

InferSSD는 어떤 환경과 모델을 지원하나요?
지원 환경은 Apple Silicon의 macOS·Metal과 NVIDIA GPU를 사용하는 Linux·CUDA입니다. 실행할 모델이 공식 README에 지정된 GGUF인지 확인해야 합니다.
모델을 내려받기 전에 디코딩 속도를 추정할 수 있나요?
`inferssd profile --model <models directory>`로 지원 모델의 디코딩 속도를 추정할 수 있습니다. 빈 디렉터리에서는 4 GiB 테스트 파일을 생성했다가 삭제하며, 결과는 모델을 실제로 실행한 벤치마크와 구분해야 합니다.
공개 벤치마크의 전체 요청 시간에 모델 로딩도 포함되나요?
전체 요청 시간에서는 모델 로딩과 전문가 팩 생성 시간이 제외됩니다. 디코딩 속도는 출력 129~256번째 토큰으로 계산합니다.

출처

  1. InferSSD — README
  2. InferSSD — How it works
  3. InferSSD — Changelog
  4. InferSSD — Benchmark methodology
  1. Codex 대화 되감기와 파일 복구: 프롬프트 수정부터 변경 취소까지
  2. Mac Studio 구매·리스·API 총비용, 36개월 기준으로 비교하는 법
  3. 프롬프트·RAG·파인튜닝 선택: 답변 실패 원인으로 판단하는 방법

댓글

Giscus를 연결하면 댓글이 열립니다.