<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://wiki.conaondaapps.com/index.php?action=history&amp;feed=atom&amp;title=Ggml</id>
	<title>Ggml - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.conaondaapps.com/index.php?action=history&amp;feed=atom&amp;title=Ggml"/>
	<link rel="alternate" type="text/html" href="https://wiki.conaondaapps.com/index.php?title=Ggml&amp;action=history"/>
	<updated>2026-08-20T12:32:58Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.conaondaapps.com/index.php?title=Ggml&amp;diff=21&amp;oldid=prev</id>
		<title>Admina7ec671ac513: migrate: import legacy Wiki content to Vultr</title>
		<link rel="alternate" type="text/html" href="https://wiki.conaondaapps.com/index.php?title=Ggml&amp;diff=21&amp;oldid=prev"/>
		<updated>2026-08-20T04:18:34Z</updated>

		<summary type="html">&lt;p&gt;migrate: import legacy Wiki content to Vultr&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;ggml&amp;#039;&amp;#039;&amp;#039;은 머신 러닝을 위한 저수준 텐서 라이브러리이다. C API를 중심으로 설계되어 C와 C++ 프로젝트에 통합할 수 있으며, CPU와 여러 GPU·가속기 백엔드를 통해 텐서 연산과 추론을 실행한다. 특히 소비자용 하드웨어에서 대규모 모델을 효율적으로 실행하는 소프트웨어 스택의 기반으로 널리 사용된다.&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
ggml의 핵심은 텐서와 연산을 표현하고, 이를 계산 그래프로 구성한 뒤, 선택한 백엔드에서 실행하는 것이다. 연산을 즉시 수행하기보다 그래프의 노드로 기록하는 방식을 사용하므로, 백엔드는 전체 그래프를 보고 실행 순서·메모리 사용·커널 선택을 최적화할 수 있다.&lt;br /&gt;
&lt;br /&gt;
프로젝트는 외부 의존성을 최소화하고, 초기화 단계에서 필요한 메모리를 준비하여 실행 중 동적 메모리 할당을 줄이는 방향으로 설계되었다. 자동 미분과 일부 최적화 알고리즘도 제공하므로 추론뿐 아니라 연구·실험용 텐서 계산에도 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
== 핵심 개념 ==&lt;br /&gt;
&lt;br /&gt;
=== 텐서 ===&lt;br /&gt;
텐서는 데이터와 그 형상(shape), 자료형을 함께 표현하는 기본 객체이다. 스칼라·벡터·행렬·고차원 배열을 하나의 추상화로 다루며, 덧셈·곱셈·행렬 곱·정규화와 같은 연산을 조합할 수 있다. 자료형에는 부동소수점 형식뿐 아니라 양자화 형식도 포함된다.&lt;br /&gt;
&lt;br /&gt;
=== 계산 그래프 ===&lt;br /&gt;
계산 그래프는 텐서를 노드로, 연산과 의존성을 간선으로 표현한다. 예를 들어 텐서 덧셈이나 행렬 곱을 호출하면 결과를 즉시 계산하기보다 그래프에 연산 노드를 추가하고, 이후 그래프를 백엔드에 전달해 실행한다. 이 구조는 연산 융합, 실행 순서 조정, 중간 텐서 재사용 같은 최적화를 가능하게 한다.&lt;br /&gt;
&lt;br /&gt;
=== 컨텍스트와 메모리 ===&lt;br /&gt;
ggml은 텐서와 그래프가 사용하는 메모리를 컨텍스트(context) 안에서 관리한다. 애플리케이션은 실행 전에 컨텍스트의 메모리 규모를 정하고, 그 안에서 텐서와 연산 그래프를 구성한다. 따라서 메모리 수명과 사용량을 비교적 명확하게 관리할 수 있다.&lt;br /&gt;
&lt;br /&gt;
=== 백엔드 ===&lt;br /&gt;
ggml은 실행 대상에 따라 백엔드를 선택할 수 있다.&lt;br /&gt;
&lt;br /&gt;
* CPU: 기본 백엔드이며 SIMD와 스레드 병렬화를 활용한다.&lt;br /&gt;
* CUDA: NVIDIA GPU에서 실행한다.&lt;br /&gt;
* Metal: Apple 기기의 GPU에서 실행한다.&lt;br /&gt;
* Vulkan: 여러 제조사의 GPU에서 이식성 높은 실행 경로를 제공한다.&lt;br /&gt;
* OpenCL, SYCL, WebGPU, RPC 등: 플랫폼과 배포 환경에 따라 추가 실행 경로를 선택할 수 있다.&lt;br /&gt;
&lt;br /&gt;
애플리케이션은 백엔드 API를 직접 선택하거나, 사용 가능한 장치를 탐색해 가장 적합한 백엔드를 선택하도록 구성할 수 있다. GPU 메모리가 부족한 경우에는 CPU와 GPU를 함께 사용하는 하이브리드 실행이 활용되기도 한다.&lt;br /&gt;
&lt;br /&gt;
== 양자화 ==&lt;br /&gt;
양자화는 텐서의 값을 더 적은 비트 수로 표현하여 모델 크기와 메모리 사용량을 줄이는 기법이다. ggml은 여러 정수 양자화 형식을 제공하며, 낮은 비트 형식일수록 저장 공간과 메모리 대역폭을 줄일 수 있는 대신 정확도와 연산 특성 사이의 절충이 필요하다. 실제 적용에서는 모델의 품질 저하, 하드웨어별 커널 지원, 추론 속도를 함께 평가해야 한다.&lt;br /&gt;
&lt;br /&gt;
== GGUF 파일 형식 ==&lt;br /&gt;
[[GGUF]]는 ggml 및 ggml 기반 실행기에서 추론 모델을 저장하기 위한 이진 파일 형식이다. 모델 텐서와 함께 아키텍처, 토크나이저, 양자화 정보와 같은 메타데이터를 저장할 수 있어 모델을 실행기에 전달하기 쉽다. [[GGUF]]는 ggml의 텐서 연산 라이브러리 그 자체가 아니라, 모델 파일을 저장·교환하기 위한 형식이라는 점을 구분해야 한다.&lt;br /&gt;
&lt;br /&gt;
== 관련 프로젝트 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[llama.cpp]]&amp;#039;&amp;#039;&amp;#039;: ggml을 이용해 대규모 언어 모델을 로컬 CPU·GPU에서 실행하는 대표적인 C/C++ 프로젝트이다.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[whisper.cpp]]&amp;#039;&amp;#039;&amp;#039;: 음성 인식 모델 Whisper를 ggml 기반으로 실행하는 프로젝트이다.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;기타 실행기&amp;#039;&amp;#039;&amp;#039;: ggml의 백엔드와 [[GGUF]] 생태계는 로컬 추론 도구, 데스크톱 애플리케이션, 모바일·엣지 장치용 런타임에 활용된다.&lt;br /&gt;
&lt;br /&gt;
== 장점과 고려사항 ==&lt;br /&gt;
&lt;br /&gt;
;장점&lt;br /&gt;
* 외부 의존성이 적고 여러 운영체제와 하드웨어에서 사용할 수 있다.&lt;br /&gt;
* CPU·GPU 백엔드를 교체하면서 동일한 계산 그래프를 실행할 수 있다.&lt;br /&gt;
* 양자화와 사전 할당형 메모리 관리로 로컬 추론에 적합하다.&lt;br /&gt;
* 저수준 라이브러리이므로 애플리케이션의 메모리·실행 흐름을 세밀하게 제어할 수 있다.&lt;br /&gt;
&lt;br /&gt;
;고려사항&lt;br /&gt;
* 고수준 학습 프레임워크처럼 데이터 로더, 자동 분산 학습, 풍부한 모델 레이어 API를 제공하는 것이 목적은 아니다.&lt;br /&gt;
* 백엔드별 빌드 옵션과 드라이버·SDK 요구사항이 다르다.&lt;br /&gt;
* 양자화 형식과 하드웨어에 따라 정확도, 처리량, 메모리 사용량이 달라질 수 있다.&lt;br /&gt;
* 프로젝트가 활발히 개발 중이므로 버전별 API와 파일 형식의 변경 사항을 확인해야 한다.&lt;br /&gt;
&lt;br /&gt;
== 빌드 흐름 ==&lt;br /&gt;
공식 저장소를 내려받은 뒤 CMake로 빌드할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/ggml-org/ggml.git&lt;br /&gt;
cd ggml&lt;br /&gt;
cmake -B build&lt;br /&gt;
cmake --build build --config Release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPU 백엔드를 사용하려면 해당 백엔드의 SDK와 드라이버를 준비하고, 프로젝트 문서에 설명된 CMake 옵션을 활성화해야 한다. CPU 백엔드는 별도 GPU SDK 없이 사용할 수 있는 기본 실행 경로이다.&lt;br /&gt;
&lt;br /&gt;
== 출처 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/ggml-org/ggml ggml 공식 저장소]&lt;br /&gt;
* [https://ggml-org-ggml.mintlify.app/ ggml 공식 문서]&lt;br /&gt;
* [https://ggml-org-ggml.mintlify.app/concepts/computation-graph 계산 그래프 문서]&lt;br /&gt;
* [https://github.com/ggml-org/ggml/blob/master/docs/gguf.md GGUF 파일 형식 문서]&lt;br /&gt;
* [https://github.com/ggml-org/llama.cpp llama.cpp 공식 저장소]&lt;br /&gt;
* [https://github.com/ggerganov/whisper.cpp whisper.cpp 공식 저장소]&lt;br /&gt;
&lt;br /&gt;
[[분류:머신 러닝]]&lt;br /&gt;
[[분류:소프트웨어 라이브러리]]&lt;br /&gt;
[[분류:C++ 소프트웨어]]&lt;/div&gt;</summary>
		<author><name>Admina7ec671ac513</name></author>
	</entry>
</feed>