본문으로 건너뛰기
AI NEWS JOURNAL
ONE EVENT. MANY PERSPECTIVES.

llama.cpp · b11906

ggml-cpu : rewrite concat as one row kernel for all types (#31179) Every dst row comes from src0 or src1, or for dim 0 from the row of src0 followed by the row of src1, so a single kernel covers every type: a dense source row is one memcpy, quantized types included, and a strided source is copied element by element with the element size known at compile time. Rows are split across threads instead of i2 alone, which is often 1, and are copied in tiles of 32: for a transposed source the elements are walked in the outer loop, so the rows of a tile read neighboring addresses instead of jumping a full row stride per element. Add transposed b cases to test_concat, the layout of the delta-net conv input, and a perf case for it. **Website:** - **Attestations:** - **macOS/iOS:** - [macOS Apple Sili

1 개 독립 출처 · 1 건의 보도오래된순 ↕
발행 시간순

b11906

ggml-cpu : 모든 타입에 대해 concat을 단일 행 커널로 재구현 (#31179) 모든 대상 행은 소스0 또는 소스1에서 나올 수 있으며, 차원이 0인 경우에는 소스0의 행 뒤에 소스1의 행이 이어지는 형태로 생성되므로, 하나의 커널로 모든 타입을 처리할 수 있습니다. 즉, 밀집형 소스 행은 컴파일 시 요소 크기가 알려진 상태에서 단일 memcpy로 처리되며, 양자화된 타입도 포함됩니다. 또한 스트라이드가 적용된 소스는 컴파일 시점에 요소 크기가 확정되어 요소별로 일일이 복사됩니다. 행들은 i2만으로 처리되는 경우보다 스레드 간에 분산되어 처리되며, 일반적으로 i2 값은 1인 경우가 많습니다. 그리고 행들은 32개씩 나누어 타일 단위로 복사됩니다. 전치된 소스의 경우 외부 루프에서 요소를 순회하므로, 한 타일 내의 각 행은 요소마다 전체 행 스트라이드를 건너뛰는 방식이 아니라 인접한 주소를 읽게 됩니다. test_concat 테스트에 전치된 b 케이스와 델타넷 합성곱 입력의 레이아웃을 추가하고, 이에 대한 성능 테스트 케이스도 마련했습니다. **웹사이트:** - **인증서:** - **macOS/iOS:** - [macOS Apple Sili

진행 상황 및 관련 보도