metal: col2im_1d 연산 (f32/f16/bf16) 추가 ([#25176](https://github.com/ggml-org/llam
요약
llama.cpp의 Metal 백엔드에 col2im_1d 연산(f32/f16/bf16)을 추가했습니다. CPU 및 CUDA 경로와 동일한 동작을 보장하며, Apple Silicon 환경에서의 연산 효율성을 높였습니다.
핵심 포인트
- Metal 환경을 위한 col2im_1d 연산 지원 추가
- F32 누산기를 사용한 Gather 커널 구현으로 성능 최적화
- CPU, CUDA, Vulkan 백엔드와 연산 일관성 확보
- 목적지 메모리 연속성 및 타입 일치 조건 검증 로직 포함
metal: col2im_1d 연산 (f32/f16/bf16) 추가 (#25176)
- metal: col2im_1d 연산 (f32/f16/bf16) 추가
CPU/CUDA 경로를 미러링하는 Gather 커널: 각 출력(t_out, oc)은 F32 누산기(accumulator)를 사용하여 ceil(K/s0)개의 소스 컬럼을 읽으며, 단일 쓰기(write)를 수행하고 원자적 연산(atomics)을 사용하지 않습니다. 출력 요소당 하나의 스레드, 스레드 그룹(threadgroup)당 256개의 스레드를 사용합니다.
- metal: COL2IM_1D에 대한 supports_op에서 목적지(dst) 연속성 및 타입 일치 확인
GGML_OP_COL2IM_1D 술어(predicate)를 CPU, CUDA 및 Vulkan 백엔드와 일치시킵니다: 커널은 선형 인덱싱(linear indexing)으로 목적지(dst)를 쓰며 src0와 동일한 타입을 가정하므로, supports_op 또한 연속적인 dst와 op->type == op->src[0]->type을 요구해야 합니다.
- ggml/src/ggml-metal/ggml-metal.metal 업데이트
Co-authored-by: YiChen Lv 63285796+forforever73@users.noreply.github.com
Co-authored-by: YiChen Lv 63285796+forforever73@users.noreply.github.com
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI 활성화) 비활성화됨
- macOS Intel (x64)
- iOS XCFramework
Linux:
<strong>Linux:</strong>
- Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32)
- Ubuntu x64 (SYCL FP16)
<strong>Android:</strong>
<strong>Windows:</strong>
<strong>Windows:</strong>
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows arm64 (OpenCL Adreno)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.3 DLLs
- Windows x64 (Vulkan)
- Windows x64 (OpenVINO)
- Windows x64 (SYCL)
- Windows x64 (HIP)**
openEuler:
- DISABLED
- openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)**
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기