From 52b3d71f128c1eeab39b918adf1f7a8f5e256619 Mon Sep 17 00:00:00 2001 From: zhouwg Date: Mon, 7 Apr 2025 19:34:14 +0800 Subject: [PATCH 01/96] CANN: fix typo in ggml-cann (#12733) --- ggml/src/ggml-cann/ggml-cann.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/ggml-cann/ggml-cann.cpp b/ggml/src/ggml-cann/ggml-cann.cpp index bcd05c9ae75de..326f9d298b6ba 100644 --- a/ggml/src/ggml-cann/ggml-cann.cpp +++ b/ggml/src/ggml-cann/ggml-cann.cpp @@ -803,7 +803,7 @@ static enum ggml_status ggml_backend_cann_buffer_init_tensor( return GGML_STATUS_SUCCESS; } - // TODO: can backend doesn't support quantized yet. Just leave the code + // TODO: cann backend doesn't support quantized yet. Just leave the code // here. if (ggml_is_quantized(tensor->type)) { // Initialize padding to 0 to avoid possible NaN values From bd3f59f81289b920bcc597a208c14f55e39ed37e Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 7 Apr 2025 13:35:19 +0200 Subject: [PATCH 02/96] cmake : enable curl by default (#12761) * cmake : enable curl by default * no curl if no examples * fix build * fix build-linux-cross * add windows-setup-curl * fix * shell * fix path * fix windows-latest-cmake* * run: include_directories * LLAMA_RUN_EXTRA_LIBS * sycl: no llama_curl * no test-arg-parser on windows * clarification * try riscv64 / arm64 * windows: include libcurl inside release binary * add msg * fix mac / ios / android build * will this fix xcode? * try clearing the cache * add bunch of licenses * revert clear cache * fix xcode * fix xcode (2) * fix typo --- .devops/cpu.Dockerfile | 4 +- .devops/cuda.Dockerfile | 2 +- .devops/intel.Dockerfile | 2 +- .devops/musa.Dockerfile | 2 +- .devops/rocm.Dockerfile | 2 +- .github/actions/windows-setup-curl/action.yml | 25 ++++++ .github/workflows/bench.yml.disabled | 1 - .github/workflows/build-linux-cross.yml | 9 ++- .github/workflows/build.yml | 80 ++++++++++++++----- .github/workflows/server.yml | 18 ++--- CMakeLists.txt | 24 +++++- build-xcframework.sh | 7 ++ common/CMakeLists.txt | 5 +- examples/llama.android/llama/build.gradle.kts | 1 + examples/run/CMakeLists.txt | 13 ++- examples/server/tests/README.md | 2 +- examples/sycl/win-build-sycl.bat | 4 +- licenses/LICENSE-curl | 9 +++ licenses/LICENSE-httplib | 21 +++++ licenses/LICENSE-jsonhpp | 21 +++++ .../LICENSE => licenses/LICENSE-linenoise | 0 tests/CMakeLists.txt | 6 +- 22 files changed, 209 insertions(+), 49 deletions(-) create mode 100644 .github/actions/windows-setup-curl/action.yml create mode 100644 licenses/LICENSE-curl create mode 100644 licenses/LICENSE-httplib create mode 100644 licenses/LICENSE-jsonhpp rename examples/run/linenoise.cpp/LICENSE => licenses/LICENSE-linenoise (100%) diff --git a/.devops/cpu.Dockerfile b/.devops/cpu.Dockerfile index 522ee8147d63a..aa2aa0312010e 100644 --- a/.devops/cpu.Dockerfile +++ b/.devops/cpu.Dockerfile @@ -14,9 +14,9 @@ WORKDIR /app COPY . . RUN if [ "$TARGETARCH" = "amd64" ]; then \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON; \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON; \ elif [ "$TARGETARCH" = "arm64" ]; then \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}; \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}; \ else \ echo "Unsupported architecture"; \ exit 1; \ diff --git a/.devops/cuda.Dockerfile b/.devops/cuda.Dockerfile index 0bc4e7ee13f66..a196111e61d62 100644 --- a/.devops/cuda.Dockerfile +++ b/.devops/cuda.Dockerfile @@ -21,7 +21,7 @@ COPY . . RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ fi && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/intel.Dockerfile b/.devops/intel.Dockerfile index af783f5e998eb..e2b381766f196 100644 --- a/.devops/intel.Dockerfile +++ b/.devops/intel.Dockerfile @@ -17,7 +17,7 @@ RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \ && export OPT_SYCL_F16="-DGGML_SYCL_F16=ON"; \ fi && \ echo "Building with dynamic libs" && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_CURL=ON ${OPT_SYCL_F16} && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ${OPT_SYCL_F16} && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/musa.Dockerfile b/.devops/musa.Dockerfile index 1e87737abfb71..e8297c6948c5c 100644 --- a/.devops/musa.Dockerfile +++ b/.devops/musa.Dockerfile @@ -35,7 +35,7 @@ COPY . . RUN if [ "${MUSA_DOCKER_ARCH}" != "default" ]; then \ export CMAKE_ARGS="-DMUSA_ARCHITECTURES=${MUSA_DOCKER_ARCH}"; \ fi && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/rocm.Dockerfile b/.devops/rocm.Dockerfile index 48e7e6aaa5b77..66687a25ba068 100644 --- a/.devops/rocm.Dockerfile +++ b/.devops/rocm.Dockerfile @@ -40,7 +40,7 @@ WORKDIR /app COPY . . RUN HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \ - cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=$ROCM_DOCKER_ARCH -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON \ + cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=$ROCM_DOCKER_ARCH -DCMAKE_BUILD_TYPE=Release \ && cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib \ diff --git a/.github/actions/windows-setup-curl/action.yml b/.github/actions/windows-setup-curl/action.yml new file mode 100644 index 0000000000000..5d76da3d79ac5 --- /dev/null +++ b/.github/actions/windows-setup-curl/action.yml @@ -0,0 +1,25 @@ +name: 'Windows - Setup CURL' +description: 'Composite action, to be reused in other workflow' +inputs: + curl_version: + description: 'CURL version' + required: false + default: '8.6.0_6' +outputs: + curl_path: + description: "Path to the downloaded libcurl" + value: ${{ steps.get_libcurl.outputs.curl_path }} + +runs: + using: "composite" + steps: + - name: libCURL + id: get_libcurl + shell: powershell + env: + CURL_VERSION: ${{ inputs.curl_version }} + run: | + curl.exe -o $env:RUNNER_TEMP/curl.zip -L "https://curl.se/windows/dl-${env:CURL_VERSION}/curl-${env:CURL_VERSION}-win64-mingw.zip" + mkdir $env:RUNNER_TEMP/libcurl + tar.exe -xvf $env:RUNNER_TEMP/curl.zip --strip-components=1 -C $env:RUNNER_TEMP/libcurl + echo "curl_path=$env:RUNNER_TEMP/libcurl" >> $env:GITHUB_OUTPUT diff --git a/.github/workflows/bench.yml.disabled b/.github/workflows/bench.yml.disabled index 0370c8943fa0e..75d2714792891 100644 --- a/.github/workflows/bench.yml.disabled +++ b/.github/workflows/bench.yml.disabled @@ -104,7 +104,6 @@ jobs: cmake -B build \ -DGGML_NATIVE=OFF \ -DLLAMA_BUILD_SERVER=ON \ - -DLLAMA_CURL=ON \ -DLLAMA_CUBLAS=ON \ -DCUDAToolkit_ROOT=/usr/local/cuda \ -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \ diff --git a/.github/workflows/build-linux-cross.yml b/.github/workflows/build-linux-cross.yml index d4176fef9cee2..e8639913ea3a6 100644 --- a/.github/workflows/build-linux-cross.yml +++ b/.github/workflows/build-linux-cross.yml @@ -19,7 +19,8 @@ jobs: sudo apt-get install -y --no-install-recommends \ build-essential \ gcc-14-riscv64-linux-gnu \ - g++-14-riscv64-linux-gnu + g++-14-riscv64-linux-gnu \ + libcurl4-openssl-dev:riscv64 - name: Build run: | @@ -59,7 +60,8 @@ jobs: glslc \ gcc-14-riscv64-linux-gnu \ g++-14-riscv64-linux-gnu \ - libvulkan-dev:riscv64 + libvulkan-dev:riscv64 \ + libcurl4-openssl-dev:riscv64 - name: Build run: | @@ -99,7 +101,8 @@ jobs: build-essential \ glslc \ crossbuild-essential-arm64 \ - libvulkan-dev:arm64 + libvulkan-dev:arm64 \ + libcurl4-openssl-dev:arm64 - name: Build run: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc2a4c0566840..33f6a4fb483ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,6 +54,7 @@ jobs: continue-on-error: true run: | brew update + brew install curl - name: Build id: cmake_build @@ -62,7 +63,6 @@ jobs: cmake -B build \ -DCMAKE_BUILD_RPATH="@loader_path" \ -DLLAMA_FATAL_WARNINGS=ON \ - -DLLAMA_CURL=ON \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DGGML_RPC=ON @@ -92,7 +92,6 @@ jobs: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} run: | cp LICENSE ./build/bin/ - cp examples/run/linenoise.cpp/LICENSE ./build/bin/LICENSE.linenoise.cpp zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.zip ./build/bin/* - name: Upload artifacts @@ -123,6 +122,7 @@ jobs: continue-on-error: true run: | brew update + brew install curl - name: Build id: cmake_build @@ -133,7 +133,6 @@ jobs: cmake -B build \ -DCMAKE_BUILD_RPATH="@loader_path" \ -DLLAMA_FATAL_WARNINGS=ON \ - -DLLAMA_CURL=ON \ -DGGML_METAL=OFF \ -DGGML_RPC=ON cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) @@ -162,7 +161,6 @@ jobs: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} run: | cp LICENSE ./build/bin/ - cp examples/run/linenoise.cpp/LICENSE ./build/bin/LICENSE.linenoise.cpp zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip ./build/bin/* - name: Upload artifacts @@ -207,7 +205,6 @@ jobs: run: | cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ - -DLLAMA_CURL=ON \ -DGGML_RPC=ON cmake --build build --config Release -j $(nproc) @@ -246,7 +243,6 @@ jobs: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} run: | cp LICENSE ./build/bin/ - cp examples/run/linenoise.cpp/LICENSE ./build/bin/LICENSE.linenoise.cpp zip -r llama-${{ steps.tag.outputs.name }}-bin-ubuntu-${{ matrix.build }}.zip ./build/bin/* - name: Upload artifacts @@ -281,7 +277,7 @@ jobs: id: depends run: | sudo apt-get update - sudo apt-get install build-essential + sudo apt-get install build-essential libcurl4-openssl-dev - name: Build id: cmake_build @@ -322,7 +318,7 @@ jobs: id: depends run: | sudo apt-get update - sudo apt-get install build-essential + sudo apt-get install build-essential libcurl4-openssl-dev - name: Build id: cmake_build @@ -360,7 +356,7 @@ jobs: id: depends run: | sudo apt-get update - sudo apt-get install build-essential + sudo apt-get install build-essential libcurl4-openssl-dev - name: Build id: cmake_build @@ -397,7 +393,7 @@ jobs: wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list sudo apt-get update -y - sudo apt-get install -y build-essential mesa-vulkan-drivers vulkan-sdk + sudo apt-get install -y build-essential mesa-vulkan-drivers vulkan-sdk libcurl4-openssl-dev - name: Build id: cmake_build @@ -431,7 +427,6 @@ jobs: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} run: | cp LICENSE ./build/bin/ - cp examples/run/linenoise.cpp/LICENSE ./build/bin/LICENSE.linenoise.cpp zip -r llama-${{ steps.tag.outputs.name }}-bin-ubuntu-vulkan-x64.zip ./build/bin/* - name: Upload artifacts @@ -454,7 +449,7 @@ jobs: id: depends run: | sudo apt-get update - sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev + sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev libcurl4-openssl-dev - name: ccache uses: hendrikmuhs/ccache-action@v1.2.16 @@ -530,7 +525,7 @@ jobs: shell: bash run: | sudo apt update - sudo apt install intel-oneapi-compiler-dpcpp-cpp + sudo apt install intel-oneapi-compiler-dpcpp-cpp libcurl4-openssl-dev - name: install oneAPI MKL library shell: bash @@ -578,7 +573,7 @@ jobs: shell: bash run: | sudo apt update - sudo apt install intel-oneapi-compiler-dpcpp-cpp + sudo apt install intel-oneapi-compiler-dpcpp-cpp libcurl4-openssl-dev - name: install oneAPI MKL library shell: bash @@ -636,6 +631,7 @@ jobs: cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ @@ -671,6 +667,7 @@ jobs: cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ @@ -700,6 +697,7 @@ jobs: cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ @@ -739,6 +737,7 @@ jobs: cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_CURL=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ @@ -899,10 +898,17 @@ jobs: -DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release" cmake --build build-arm64-release --target install --config release + - name: libCURL + id: get_libcurl + uses: ./.github/actions/windows-setup-curl + - name: Build id: cmake_build + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | - cmake -S . -B build ${{ matrix.defines }} + cmake -S . -B build ${{ matrix.defines }} ` + -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include" cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} - name: Add libopenblas.dll @@ -962,9 +968,10 @@ jobs: - name: Pack artifacts id: pack_artifacts if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | - Copy-Item LICENSE .\build\bin\Release\llama.cpp.txt - Copy-Item .\examples\run\linenoise.cpp\LICENSE .\build\bin\Release\linenoise.cpp.txt + Copy-Item $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\Release\libcurl-x64.dll 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip .\build\bin\Release\* - name: Upload artifacts @@ -990,7 +997,7 @@ jobs: DEBIAN_FRONTEND: noninteractive run: | apt update - apt install -y cmake build-essential ninja-build libgomp1 git + apt install -y cmake build-essential ninja-build libgomp1 git libcurl4-openssl-dev - name: ccache uses: hendrikmuhs/ccache-action@v1.2.16 @@ -1092,16 +1099,23 @@ jobs: run: | choco install ninja + - name: libCURL + id: get_libcurl + uses: ./.github/actions/windows-setup-curl + - name: Build id: cmake_build shell: cmd + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" cmake -S . -B build -G "Ninja Multi-Config" ^ -DLLAMA_BUILD_SERVER=ON ^ -DGGML_NATIVE=OFF ^ -DGGML_CUDA=ON ^ - -DGGML_RPC=ON + -DGGML_RPC=ON ^ + -DCURL_LIBRARY="%CURL_PATH%/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="%CURL_PATH%/include" set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1 cmake --build build --config Release -j %NINJA_JOBS% -t ggml cmake --build build --config Release @@ -1122,7 +1136,10 @@ jobs: - name: Pack artifacts id: pack_artifacts if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | + cp $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\Release\libcurl-x64.dll 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-cu${{ matrix.cuda }}-x64.zip .\build\bin\Release\* - name: Upload artifacts @@ -1177,6 +1194,8 @@ jobs: run: | scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL + # TODO: add libcurl support ; we will also need to modify win-build-sycl.bat to accept user-specified args + - name: Build id: cmake_build run: examples/sycl/win-build-sycl.bat @@ -1262,8 +1281,14 @@ jobs: key: ${{ github.job }} evict-old-files: 1d + - name: libCURL + id: get_libcurl + uses: ./.github/actions/windows-setup-curl + - name: Build id: cmake_build + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" @@ -1274,9 +1299,11 @@ jobs: -DCMAKE_BUILD_TYPE=Release ` -DGGML_HIP=ON ` -DGGML_HIP_ROCWMMA_FATTN=ON ` - -DGGML_RPC=ON + -DGGML_RPC=ON ` + -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include" cmake --build build -j ${env:NUMBER_OF_PROCESSORS} + # TODO: reuse windows-latest-cmake-hip instead of duplicating this job windows-latest-cmake-hip-release: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} runs-on: windows-latest @@ -1318,8 +1345,14 @@ jobs: run: | & 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version + - name: libCURL + id: get_libcurl + uses: ./.github/actions/windows-setup-curl + - name: Build id: cmake_build + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" @@ -1331,7 +1364,8 @@ jobs: -DAMDGPU_TARGETS=${{ matrix.gpu_target }} ` -DGGML_HIP_ROCWMMA_FATTN=ON ` -DGGML_HIP=ON ` - -DGGML_RPC=ON + -DGGML_RPC=ON ` + -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include" cmake --build build -j ${env:NUMBER_OF_PROCESSORS} md "build\bin\rocblas\library\" cp "${env:HIP_PATH}\bin\hipblas.dll" "build\bin\" @@ -1353,7 +1387,10 @@ jobs: - name: Pack artifacts id: pack_artifacts + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | + cp $env:CURL_PATH\bin\libcurl-x64.dll .\build\bin\libcurl-x64.dll 7z a llama-${{ steps.tag.outputs.name }}-bin-win-hip-x64-${{ matrix.gpu_target }}.zip .\build\bin\* - name: Upload artifacts @@ -1378,6 +1415,7 @@ jobs: cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_CURL=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 092c928bdf552..6c9b5132276fe 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -129,7 +129,6 @@ jobs: cmake -B build \ -DGGML_NATIVE=OFF \ -DLLAMA_BUILD_SERVER=ON \ - -DLLAMA_CURL=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ -DGGML_OPENMP=OFF ; @@ -142,7 +141,6 @@ jobs: cmake -B build \ -DGGML_NATIVE=OFF \ -DLLAMA_BUILD_SERVER=ON \ - -DLLAMA_CURL=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON ; cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server @@ -154,7 +152,6 @@ jobs: cmake -B build \ -DGGML_NATIVE=OFF \ -DLLAMA_BUILD_SERVER=ON \ - -DLLAMA_CURL=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ; cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server @@ -195,17 +192,14 @@ jobs: - name: libCURL id: get_libcurl - env: - CURL_VERSION: 8.6.0_6 - run: | - curl.exe -o $env:RUNNER_TEMP/curl.zip -L "https://curl.se/windows/dl-${env:CURL_VERSION}/curl-${env:CURL_VERSION}-win64-mingw.zip" - mkdir $env:RUNNER_TEMP/libcurl - tar.exe -xvf $env:RUNNER_TEMP/curl.zip --strip-components=1 -C $env:RUNNER_TEMP/libcurl + uses: ./.github/actions/windows-setup-curl - name: Build id: cmake_build + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | - cmake -B build -DLLAMA_CURL=ON -DCURL_LIBRARY="$env:RUNNER_TEMP/libcurl/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:RUNNER_TEMP/libcurl/include" + cmake -B build -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include" cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} --target llama-server - name: Python setup @@ -221,8 +215,10 @@ jobs: - name: Copy Libcurl id: prepare_libcurl + env: + CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }} run: | - cp $env:RUNNER_TEMP/libcurl/bin/libcurl-x64.dll ./build/bin/Release/libcurl-x64.dll + cp $env:CURL_PATH/bin/libcurl-x64.dll ./build/bin/Release/libcurl-x64.dll - name: Tests id: server_integration_tests diff --git a/CMakeLists.txt b/CMakeLists.txt index 23cfbce5ae566..de51c0a17b2f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,7 @@ option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE}) option(LLAMA_BUILD_SERVER "llama: build server example" ${LLAMA_STANDALONE}) # 3rd party libs -option(LLAMA_CURL "llama: use libcurl to download model from an URL" OFF) +option(LLAMA_CURL "llama: use libcurl to download model from an URL" ON) option(LLAMA_LLGUIDANCE "llama-common: include LLGuidance library for structured output in common utils" OFF) # Required for relocatable CMake package @@ -168,6 +168,11 @@ add_subdirectory(src) # utils, programs, examples and tests # +if (NOT LLAMA_BUILD_COMMON) + message(STATUS "LLAMA_BUILD_COMMON is OFF, disabling LLAMA_CURL") + set(LLAMA_CURL OFF) +endif() + if (LLAMA_BUILD_COMMON) add_subdirectory(common) endif() @@ -242,3 +247,20 @@ configure_file(cmake/llama.pc.in install(FILES "${CMAKE_CURRENT_BINARY_DIR}/llama.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + +# +# copy the license files +# + +# Check if running in GitHub Actions +if(DEFINED ENV{GITHUB_ACTIONS} AND "$ENV{GITHUB_ACTIONS}" STREQUAL "true") + message(STATUS "Running inside GitHub Actions - copying license files") + + # Copy all files from licenses/ to build/bin/ + file(GLOB LICENSE_FILES "${CMAKE_SOURCE_DIR}/licenses/*") + foreach(LICENSE_FILE ${LICENSE_FILES}) + get_filename_component(FILENAME ${LICENSE_FILE} NAME) + configure_file(${LICENSE_FILE} "${CMAKE_BINARY_DIR}/bin/${FILENAME}" COPYONLY) + endforeach() +endif() + diff --git a/build-xcframework.sh b/build-xcframework.sh index 2ce3939c43d6c..1b9091d288cc8 100755 --- a/build-xcframework.sh +++ b/build-xcframework.sh @@ -399,6 +399,7 @@ cmake -B build-ios-sim -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=iphonesimulator \ -DCMAKE_C_FLAGS="${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-ios-sim --config Release -- -quiet @@ -411,6 +412,7 @@ cmake -B build-ios-device -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=iphoneos \ -DCMAKE_C_FLAGS="${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-ios-device --config Release -- -quiet @@ -421,6 +423,7 @@ cmake -B build-macos -G Xcode \ -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \ -DCMAKE_C_FLAGS="${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-macos --config Release -- -quiet @@ -434,6 +437,7 @@ cmake -B build-visionos -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xros \ -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-visionos --config Release -- -quiet @@ -447,6 +451,7 @@ cmake -B build-visionos-sim -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xrsimulator \ -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-visionos-sim --config Release -- -quiet @@ -462,6 +467,7 @@ cmake -B build-tvos-sim -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=appletvsimulator \ -DCMAKE_C_FLAGS="${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-tvos-sim --config Release -- -quiet @@ -476,6 +482,7 @@ cmake -B build-tvos-device -G Xcode \ -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=appletvos \ -DCMAKE_C_FLAGS="${COMMON_C_FLAGS}" \ -DCMAKE_CXX_FLAGS="${COMMON_CXX_FLAGS}" \ + -DLLAMA_CURL=OFF \ -S . cmake --build build-tvos-device --config Release -- -quiet diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 829eb5b7238b9..43533fc86abe2 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -85,7 +85,10 @@ set(LLAMA_COMMON_EXTRA_LIBS build_info) # Use curl to download model url if (LLAMA_CURL) - find_package(CURL REQUIRED) + find_package(CURL) + if (NOT CURL_FOUND) + message(FATAL_ERROR "Could NOT find CURL. Hint: to disable this feature, set -DLLAMA_CURL=OFF") + endif() target_compile_definitions(${TARGET} PUBLIC LLAMA_USE_CURL) include_directories(${CURL_INCLUDE_DIRS}) find_library(CURL_LIBRARY curl REQUIRED) diff --git a/examples/llama.android/llama/build.gradle.kts b/examples/llama.android/llama/build.gradle.kts index 28dbc1904888b..5bb6478022039 100644 --- a/examples/llama.android/llama/build.gradle.kts +++ b/examples/llama.android/llama/build.gradle.kts @@ -18,6 +18,7 @@ android { } externalNativeBuild { cmake { + arguments += "-DLLAMA_CURL=OFF" arguments += "-DLLAMA_BUILD_COMMON=ON" arguments += "-DGGML_LLAMAFILE=OFF" arguments += "-DCMAKE_BUILD_TYPE=Release" diff --git a/examples/run/CMakeLists.txt b/examples/run/CMakeLists.txt index cd6b0520e08bb..7cff188ca69f0 100644 --- a/examples/run/CMakeLists.txt +++ b/examples/run/CMakeLists.txt @@ -1,5 +1,16 @@ set(TARGET llama-run) add_executable(${TARGET} run.cpp linenoise.cpp/linenoise.cpp) + +# TODO: avoid copying this code block from common/CMakeLists.txt +set(LLAMA_RUN_EXTRA_LIBS "") +if (LLAMA_CURL) + find_package(CURL REQUIRED) + target_compile_definitions(${TARGET} PUBLIC LLAMA_USE_CURL) + include_directories(${CURL_INCLUDE_DIRS}) + find_library(CURL_LIBRARY curl REQUIRED) + set(LLAMA_RUN_EXTRA_LIBS ${LLAMA_RUN_EXTRA_LIBS} ${CURL_LIBRARY}) +endif () + install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT} ${LLAMA_RUN_EXTRA_LIBS}) target_compile_features(${TARGET} PRIVATE cxx_std_17) diff --git a/examples/server/tests/README.md b/examples/server/tests/README.md index 12816bfa8705b..652dea0382ce1 100644 --- a/examples/server/tests/README.md +++ b/examples/server/tests/README.md @@ -17,7 +17,7 @@ To mitigate it, you can increase values in `n_predict`, `kv_size`. ```shell cd ../../.. -cmake -B build -DLLAMA_CURL=ON +cmake -B build cmake --build build --target llama-server ``` diff --git a/examples/sycl/win-build-sycl.bat b/examples/sycl/win-build-sycl.bat index 17dd1ff5c169e..6fc897b1486c8 100644 --- a/examples/sycl/win-build-sycl.bat +++ b/examples/sycl/win-build-sycl.bat @@ -13,10 +13,10 @@ if %errorlevel% neq 0 goto ERROR :: for FP16 :: faster for long-prompt inference -:: cmake -G "MinGW Makefiles" .. -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON +:: cmake -G "MinGW Makefiles" .. -DLLAMA_CURL=OFF -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON :: for FP32 -cmake -G "Ninja" .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release +cmake -G "Ninja" .. -DLLAMA_CURL=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release if %errorlevel% neq 0 goto ERROR :: build example/main only :: make main diff --git a/licenses/LICENSE-curl b/licenses/LICENSE-curl new file mode 100644 index 0000000000000..da9c038253092 --- /dev/null +++ b/licenses/LICENSE-curl @@ -0,0 +1,9 @@ +Copyright (c) 1996 - 2025, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. + +All rights reserved. + +Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. diff --git a/licenses/LICENSE-httplib b/licenses/LICENSE-httplib new file mode 100644 index 0000000000000..47c418e072676 --- /dev/null +++ b/licenses/LICENSE-httplib @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 yhirose + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/LICENSE-jsonhpp b/licenses/LICENSE-jsonhpp new file mode 100644 index 0000000000000..b5a10275c1cdf --- /dev/null +++ b/licenses/LICENSE-jsonhpp @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013-2025 Niels Lohmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/examples/run/linenoise.cpp/LICENSE b/licenses/LICENSE-linenoise similarity index 100% rename from examples/run/linenoise.cpp/LICENSE rename to licenses/LICENSE-linenoise diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7a158d6024d78..2bb210702aef8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -131,9 +131,13 @@ if (NOT WIN32) endif() llama_target_and_test(test-log.cpp) -llama_target_and_test(test-arg-parser.cpp) llama_target_and_test(test-chat-template.cpp) +# this fails on windows (github hosted runner) due to curl DLL not found (exit code 0xc0000135) +if (NOT WIN32) + llama_target_and_test(test-arg-parser.cpp) +endif() + # llama_target_and_test(test-opt.cpp) # SLOW llama_target_and_test(test-gguf.cpp) llama_target_and_test(test-backend-ops.cpp) From e391d3ee8ddae86be70c034de1082ad51c55e211 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 7 Apr 2025 14:37:28 +0200 Subject: [PATCH 03/96] ci : no curl on ggml-ci (#12796) --- ci/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run.sh b/ci/run.sh index ebd662b38bf88..f463d7a8b2009 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -39,7 +39,7 @@ sd=`dirname $0` cd $sd/../ SRC=`pwd` -CMAKE_EXTRA="-DLLAMA_FATAL_WARNINGS=ON" +CMAKE_EXTRA="-DLLAMA_FATAL_WARNINGS=ON -DLLAMA_CURL=OFF" if [ ! -z ${GG_BUILD_METAL} ]; then CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_METAL=ON -DGGML_METAL_USE_BF16=ON" From 518a01480eb3a7c80a4951b430db9dee55428310 Mon Sep 17 00:00:00 2001 From: zhouwg Date: Mon, 7 Apr 2025 23:22:57 +0800 Subject: [PATCH 04/96] sycl: remove redundant memcopy in function ggml_backend_sycl_buffer_set_tensor (#12734) --- ggml/src/ggml-sycl/ggml-sycl.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index dff9f8d4c4ac2..f6f288d990639 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -372,12 +372,9 @@ static void ggml_backend_sycl_buffer_set_tensor(ggml_backend_buffer_t buffer, auto stream = &(dpct::dev_mgr::instance().get_device(ctx->device).default_queue()); SYCL_CHECK( CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw())); - char* host_buf = (char*)malloc(size); - memcpy(host_buf, data, size); SYCL_CHECK( - CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, host_buf, size) + CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, data, size) .wait())); - free(host_buf); } catch (sycl::exception const &exc) { std::cerr << exc.what() << "Exception caught at file:" << __FILE__ From 995083e4ed24933e6a289472f9de0f0b53ca5eca Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Wed, 2 Apr 2025 17:46:16 +0530 Subject: [PATCH 05/96] cpu: move all the operators into a separate c++ file (except mul_mat) (ggml/1167) * cpu: refactor SIMD mappings and vectorized op functions into separate files * Fix warning for ggml_float to float * Fix warnings * cpu: move all the operations (except mul_mat) to a separate c++ file * fix whitespace * Update ggml/src/ggml-cpu/vec.h Co-authored-by: Diego Devesa * Fix PR comments - use GGML_UNUSED, use cassert in ops.cpp * Reverse the order of import for ops.h and vec.h, to match what was present in ggml-cpu.c previously --------- Co-authored-by: Diego Devesa --- ggml/src/ggml-cpu/CMakeLists.txt | 5 + ggml/src/ggml-cpu/ggml-cpu.c | 12382 ++-------------------------- ggml/src/ggml-cpu/ops.cpp | 8719 ++++++++++++++++++++ ggml/src/ggml-cpu/ops.h | 128 + ggml/src/ggml-cpu/simd-mappings.h | 884 ++ ggml/src/ggml-cpu/vec.cpp | 258 + ggml/src/ggml-cpu/vec.h | 802 ++ 7 files changed, 11677 insertions(+), 11501 deletions(-) create mode 100644 ggml/src/ggml-cpu/ops.cpp create mode 100644 ggml/src/ggml-cpu/ops.h create mode 100644 ggml/src/ggml-cpu/simd-mappings.h create mode 100644 ggml/src/ggml-cpu/vec.cpp create mode 100644 ggml/src/ggml-cpu/vec.h diff --git a/ggml/src/ggml-cpu/CMakeLists.txt b/ggml/src/ggml-cpu/CMakeLists.txt index c8cc32fa5afcc..e73a3b69b5da2 100644 --- a/ggml/src/ggml-cpu/CMakeLists.txt +++ b/ggml/src/ggml-cpu/CMakeLists.txt @@ -28,6 +28,11 @@ function(ggml_add_cpu_backend_variant_impl tag_name) ggml-cpu/binary-ops.cpp ggml-cpu/unary-ops.h ggml-cpu/unary-ops.cpp + ggml-cpu/simd-mappings.h + ggml-cpu/vec.h + ggml-cpu/vec.cpp + ggml-cpu/ops.h + ggml-cpu/ops.cpp ) target_compile_features(${GGML_CPU_NAME} PRIVATE c_std_11 cxx_std_17) diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index f3925e17a2b8e..34618c27aa475 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -9,8 +9,10 @@ #include "ggml-impl.h" #include "ggml-cpu-quants.h" #include "ggml-threading.h" -#include "ggml-cpu/unary-ops.h" -#include "ggml-cpu/binary-ops.h" +#include "unary-ops.h" +#include "binary-ops.h" +#include "vec.h" +#include "ops.h" #include "ggml.h" #if defined(_MSC_VER) || defined(__MINGW32__) @@ -83,30 +85,6 @@ #define UNUSED GGML_UNUSED #define SWAP(x, y, T) do { T SWAP = x; (x) = y; (y) = SWAP; } while (0) -#if defined(GGML_USE_ACCELERATE) -#include -#endif - -// floating point type used to accumulate sums -typedef double ggml_float; - -#define GGML_GELU_FP16 -#define GGML_GELU_QUICK_FP16 - -#define GGML_SOFT_MAX_UNROLL 4 -#define GGML_VEC_DOT_UNROLL 2 -#define GGML_VEC_MAD_UNROLL 32 - -// -// global data -// - -// precomputed gelu table for f16 (128 KB) -static ggml_fp16_t ggml_table_gelu_f16[1 << 16]; - -// precomputed quick gelu table for f16 (128 KB) -static ggml_fp16_t ggml_table_gelu_quick_f16[1 << 16]; - #if defined(__ARM_ARCH) struct ggml_arm_arch_features_type { int has_neon; @@ -230,29 +208,6 @@ typedef pthread_t ggml_thread_t; #include #endif -// -// cache line -// - -#if defined(__cpp_lib_hardware_interference_size) -#define CACHE_LINE_SIZE hardware_destructive_interference_size -#else -#if defined(__POWER9_VECTOR__) -#define CACHE_LINE_SIZE 128 -#elif defined(__VXE__) || defined(__VXE2__) -#define CACHE_LINE_SIZE 256 -#else -#define CACHE_LINE_SIZE 64 -#endif -#endif - -static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); - - -static void ggml_vec_dot_f32(int n, float * GGML_RESTRICT s, size_t bs, const float * GGML_RESTRICT x, size_t bx, const float * GGML_RESTRICT y, size_t by, int nrc); -static void ggml_vec_dot_f16(int n, float * GGML_RESTRICT s, size_t bs, ggml_fp16_t * GGML_RESTRICT x, size_t bx, ggml_fp16_t * GGML_RESTRICT y, size_t by, int nrc); -static void ggml_vec_dot_bf16(int n, float * GGML_RESTRICT s, size_t bs, ggml_bf16_t * GGML_RESTRICT x, size_t bx, ggml_bf16_t * GGML_RESTRICT y, size_t by, int nrc); - static const struct ggml_type_traits_cpu type_traits_cpu[GGML_TYPE_COUNT] = { [GGML_TYPE_F32] = { .vec_dot = (ggml_vec_dot_t) ggml_vec_dot_f32, @@ -424,887 +379,6 @@ const struct ggml_type_traits_cpu * ggml_get_type_traits_cpu(enum ggml_type type return &type_traits_cpu[type]; } -// -// simd mappings -// - -// we define a common set of C macros which map to specific intrinsics based on the current architecture -// we then implement the fundamental computation operations below using only these macros -// adding support for new architectures requires to define the corresponding SIMD macros -// -// GGML_F32_STEP / GGML_F16_STEP -// number of elements to process in a single step -// -// GGML_F32_EPR / GGML_F16_EPR -// number of elements to fit in a single register -// - -#if defined(__ARM_NEON) && defined(__ARM_FEATURE_FMA) - -#define GGML_SIMD - -// F32 NEON - -#define GGML_F32_STEP 16 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 float32x4_t -#define GGML_F32x4_ZERO vdupq_n_f32(0.0f) -#define GGML_F32x4_SET1(x) vdupq_n_f32(x) -#define GGML_F32x4_LOAD vld1q_f32 -#define GGML_F32x4_STORE vst1q_f32 -#define GGML_F32x4_FMA(a, b, c) vfmaq_f32(a, b, c) -#define GGML_F32x4_ADD vaddq_f32 -#define GGML_F32x4_MUL vmulq_f32 -#define GGML_F32x4_REDUCE_ONE(x) vaddvq_f32(x) -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ - } \ - (res) = (ggml_float) GGML_F32x4_REDUCE_ONE((x)[0]); \ -} - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 NEON - -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) - #define GGML_F16_STEP 32 - #define GGML_F16_EPR 8 - - #define GGML_F16x8 float16x8_t - #define GGML_F16x8_ZERO vdupq_n_f16(0.0f) - #define GGML_F16x8_SET1(x) vdupq_n_f16(x) - #define GGML_F16x8_LOAD(x) vld1q_f16((const ggml_fp16_internal_t *)(x)) - #define GGML_F16x8_STORE vst1q_f16 - #define GGML_F16x8_FMA(a, b, c) vfmaq_f16(a, b, c) - #define GGML_F16x8_ADD vaddq_f16 - #define GGML_F16x8_MUL vmulq_f16 - #define GGML_F16x8_REDUCE(res, x) \ - do { \ - int offset = GGML_F16_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ - } \ - const float32x4_t t0 = vcvt_f32_f16(vget_low_f16 ((x)[0])); \ - const float32x4_t t1 = vcvt_f32_f16(vget_high_f16((x)[0])); \ - (res) = (ggml_float) vaddvq_f32(vaddq_f32(t0, t1)); \ - } while (0) - - #define GGML_F16_VEC GGML_F16x8 - #define GGML_F16_VEC_ZERO GGML_F16x8_ZERO - #define GGML_F16_VEC_SET1 GGML_F16x8_SET1 - #define GGML_F16_VEC_LOAD(p, i) GGML_F16x8_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F16x8_STORE((ggml_fp16_internal_t *)(p), (r)[i]) - #define GGML_F16_VEC_FMA GGML_F16x8_FMA - #define GGML_F16_VEC_ADD GGML_F16x8_ADD - #define GGML_F16_VEC_MUL GGML_F16x8_MUL - #define GGML_F16_VEC_REDUCE GGML_F16x8_REDUCE -#else - // if FP16 vector arithmetic is not supported, we use FP32 instead - // and take advantage of the vcvt_ functions to convert to/from FP16 - - #define GGML_F16_STEP 16 - #define GGML_F16_EPR 4 - - #define GGML_F32Cx4 float32x4_t - #define GGML_F32Cx4_ZERO vdupq_n_f32(0.0f) - #define GGML_F32Cx4_SET1(x) vdupq_n_f32(x) - #define GGML_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16((const ggml_fp16_internal_t *)(x))) - #define GGML_F32Cx4_STORE(x, y) vst1_f16(x, vcvt_f16_f32(y)) - #define GGML_F32Cx4_FMA(a, b, c) vfmaq_f32(a, b, c) - #define GGML_F32Cx4_ADD vaddq_f32 - #define GGML_F32Cx4_MUL vmulq_f32 - #define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE - - #define GGML_F16_VEC GGML_F32Cx4 - #define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO - #define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 - #define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE((ggml_fp16_internal_t *)(p), r[i]) - #define GGML_F16_VEC_FMA GGML_F32Cx4_FMA - #define GGML_F16_VEC_ADD GGML_F32Cx4_ADD - #define GGML_F16_VEC_MUL GGML_F32Cx4_MUL - #define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE -#endif - -#elif defined(__AVX512F__) - -#define GGML_SIMD - -// F32 AVX512 - -#define GGML_F32_STEP 64 -#define GGML_F32_EPR 16 - -#define GGML_F32x16 __m512 -#define GGML_F32x16_ZERO _mm512_setzero_ps() -#define GGML_F32x16_SET1(x) _mm512_set1_ps(x) -#define GGML_F32x16_LOAD _mm512_loadu_ps -#define GGML_F32x16_STORE _mm512_storeu_ps -// _mm512_fmadd_ps is defined in AVX512F so no guard is required -#define GGML_F32x16_FMA(a, b, c) _mm512_fmadd_ps(b, c, a) -#define GGML_F32x16_ADD _mm512_add_ps -#define GGML_F32x16_MUL _mm512_mul_ps -#define GGML_F32x16_REDUCE(res, x) \ -do { \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - res = (ggml_float) _mm512_reduce_add_ps(x[0]); \ -} while (0) - -// TODO: is this optimal ? - -#define GGML_F32_VEC GGML_F32x16 -#define GGML_F32_VEC_ZERO GGML_F32x16_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x16_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x16_LOAD -#define GGML_F32_VEC_STORE GGML_F32x16_STORE -#define GGML_F32_VEC_FMA GGML_F32x16_FMA -#define GGML_F32_VEC_ADD GGML_F32x16_ADD -#define GGML_F32_VEC_MUL GGML_F32x16_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x16_REDUCE - -// F16 AVX512 - -// F16 AVX - -#define GGML_F16_STEP 64 -#define GGML_F16_EPR 16 - -// AVX512 has FP16 extension (AVX512_FP16) but I don't have it on my machine so I use FP32 instead - -#define GGML_F32Cx16 __m512 -#define GGML_F32Cx16_ZERO _mm512_setzero_ps() -#define GGML_F32Cx16_SET1(x) _mm512_set1_ps(x) - -// unlike _mm256_cvt intrinsics that require F16C, _mm512_cvt is defined in AVX512F -// so F16C guard isn't required -#define GGML_F32Cx16_LOAD(x) _mm512_cvtph_ps(_mm256_loadu_si256((const __m256i *)(x))) -#define GGML_F32Cx16_STORE(x, y) _mm256_storeu_si256((__m256i *)(x), _mm512_cvtps_ph(y, 0)) - -#define GGML_F32Cx16_FMA(a, b, c) _mm512_fmadd_ps(b, c, a) -#define GGML_F32Cx16_ADD _mm512_add_ps -#define GGML_F32Cx16_MUL _mm512_mul_ps -#define GGML_F32Cx16_REDUCE(res, x) \ -do { \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm512_add_ps(x[i], x[offset+i]); \ - } \ - res = (ggml_float) _mm512_reduce_add_ps(x[0]); \ -} while (0) - -#define GGML_F16_VEC GGML_F32Cx16 -#define GGML_F16_VEC_ZERO GGML_F32Cx16_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx16_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx16_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx16_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx16_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx16_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx16_MUL - -#define GGML_F16_VEC_REDUCE GGML_F32Cx16_REDUCE -#elif defined(__AVX__) - -#define GGML_SIMD - -// F32 AVX - -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 8 - -#define GGML_F32x8 __m256 -#define GGML_F32x8_ZERO _mm256_setzero_ps() -#define GGML_F32x8_SET1(x) _mm256_set1_ps(x) -#define GGML_F32x8_LOAD _mm256_loadu_ps -#define GGML_F32x8_STORE _mm256_storeu_ps -#if defined(__FMA__) - #define GGML_F32x8_FMA(a, b, c) _mm256_fmadd_ps(b, c, a) -#else - #define GGML_F32x8_FMA(a, b, c) _mm256_add_ps(_mm256_mul_ps(b, c), a) -#endif -#define GGML_F32x8_ADD _mm256_add_ps -#define GGML_F32x8_MUL _mm256_mul_ps -#define GGML_F32x8_REDUCE(res, x) \ -do { \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm256_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm256_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm256_add_ps(x[i], x[offset+i]); \ - } \ - const __m128 t0 = _mm_add_ps(_mm256_castps256_ps128(x[0]), \ - _mm256_extractf128_ps(x[0], 1)); \ - const __m128 t1 = _mm_hadd_ps(t0, t0); \ - res = (ggml_float) _mm_cvtss_f32(_mm_hadd_ps(t1, t1)); \ -} while (0) -// TODO: is this optimal ? - -#define GGML_F32_VEC GGML_F32x8 -#define GGML_F32_VEC_ZERO GGML_F32x8_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x8_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x8_LOAD -#define GGML_F32_VEC_STORE GGML_F32x8_STORE -#define GGML_F32_VEC_FMA GGML_F32x8_FMA -#define GGML_F32_VEC_ADD GGML_F32x8_ADD -#define GGML_F32_VEC_MUL GGML_F32x8_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x8_REDUCE - -// F16 AVX - -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 8 - -// F16 arithmetic is not supported by AVX, so we use F32 instead - -#define GGML_F32Cx8 __m256 -#define GGML_F32Cx8_ZERO _mm256_setzero_ps() -#define GGML_F32Cx8_SET1(x) _mm256_set1_ps(x) - -#if defined(__F16C__) -// the _mm256_cvt intrinsics require F16C -#define GGML_F32Cx8_LOAD(x) _mm256_cvtph_ps(_mm_loadu_si128((const __m128i *)(x))) -#define GGML_F32Cx8_STORE(x, y) _mm_storeu_si128((__m128i *)(x), _mm256_cvtps_ph(y, 0)) -#else -static inline __m256 __avx_f32cx8_load(const ggml_fp16_t * x) { - float tmp[8]; - - for (int i = 0; i < 8; i++) { - tmp[i] = GGML_FP16_TO_FP32(x[i]); - } - - return _mm256_loadu_ps(tmp); -} -static inline void __avx_f32cx8_store(ggml_fp16_t *x, __m256 y) { - float arr[8]; - - _mm256_storeu_ps(arr, y); - - for (int i = 0; i < 8; i++) - x[i] = GGML_FP32_TO_FP16(arr[i]); -} -#define GGML_F32Cx8_LOAD(x) __avx_f32cx8_load(x) -#define GGML_F32Cx8_STORE(x, y) __avx_f32cx8_store(x, y) -#endif - -#define GGML_F32Cx8_FMA GGML_F32x8_FMA -#define GGML_F32Cx8_ADD _mm256_add_ps -#define GGML_F32Cx8_MUL _mm256_mul_ps -#define GGML_F32Cx8_REDUCE GGML_F32x8_REDUCE - -#define GGML_F16_VEC GGML_F32Cx8 -#define GGML_F16_VEC_ZERO GGML_F32Cx8_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx8_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx8_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx8_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx8_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx8_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx8_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx8_REDUCE - -#elif defined(__POWER9_VECTOR__) - -#define GGML_SIMD - -// F32 POWER9 - -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 vector float -#define GGML_F32x4_ZERO 0.0f -#define GGML_F32x4_SET1 vec_splats -#define GGML_F32x4_LOAD(p) vec_xl(0, p) -#define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) -#define GGML_F32x4_FMA(a, b, c) vec_madd(b, c, a) -#define GGML_F32x4_ADD vec_add -#define GGML_F32x4_MUL vec_mul -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset+i]); \ - } \ - res = vec_extract(x[0], 0) + \ - vec_extract(x[0], 1) + \ - vec_extract(x[0], 2) + \ - vec_extract(x[0], 3); \ -} - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 POWER9 -#define GGML_F16_STEP GGML_F32_STEP -#define GGML_F16_EPR GGML_F32_EPR -#define GGML_F16_VEC GGML_F32x4 -#define GGML_F16_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F16_VEC_FMA GGML_F32x4_FMA -#define GGML_F16_VEC_ADD GGML_F32x4_ADD -#define GGML_F16_VEC_MUL GGML_F32x4_MUL -#define GGML_F16_VEC_REDUCE GGML_F32x4_REDUCE -// Use vec_xl, not vec_ld, in case the load address is not aligned. -#define GGML_F16_VEC_LOAD(p, i) (i & 0x1) ? \ - vec_extract_fp32_from_shorth(vec_xl(0, p - GGML_F16_EPR)) : \ - vec_extract_fp32_from_shortl(vec_xl(0, p)) -#define GGML_ENDIAN_BYTE(i) ((unsigned char *)&(uint16_t){1})[i] -#define GGML_F16_VEC_STORE(p, r, i) \ - if (i & 0x1) \ - vec_xst(vec_pack_to_short_fp32(r[i - GGML_ENDIAN_BYTE(1)], \ - r[i - GGML_ENDIAN_BYTE(0)]), \ - 0, p - GGML_F16_EPR) - -#elif defined(__wasm_simd128__) - -#define GGML_SIMD - -// F32 WASM - -#define GGML_F32_STEP 16 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 v128_t -#define GGML_F32x4_ZERO wasm_f32x4_splat(0.0f) -#define GGML_F32x4_SET1(x) wasm_f32x4_splat(x) -#define GGML_F32x4_LOAD wasm_v128_load -#define GGML_F32x4_STORE wasm_v128_store -#define GGML_F32x4_FMA(a, b, c) wasm_f32x4_add(wasm_f32x4_mul(b, c), a) -#define GGML_F32x4_ADD wasm_f32x4_add -#define GGML_F32x4_MUL wasm_f32x4_mul -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - res = wasm_f32x4_extract_lane(x[0], 0) + \ - wasm_f32x4_extract_lane(x[0], 1) + \ - wasm_f32x4_extract_lane(x[0], 2) + \ - wasm_f32x4_extract_lane(x[0], 3); \ -} - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 WASM - -#define GGML_F16_STEP 16 -#define GGML_F16_EPR 4 - -inline static v128_t __wasm_f16x4_load(const ggml_fp16_t * p) { - float tmp[4]; - - tmp[0] = GGML_FP16_TO_FP32(p[0]); - tmp[1] = GGML_FP16_TO_FP32(p[1]); - tmp[2] = GGML_FP16_TO_FP32(p[2]); - tmp[3] = GGML_FP16_TO_FP32(p[3]); - - return wasm_v128_load(tmp); -} - -inline static void __wasm_f16x4_store(ggml_fp16_t * p, v128_t x) { - float tmp[4]; - - wasm_v128_store(tmp, x); - - p[0] = GGML_FP32_TO_FP16(tmp[0]); - p[1] = GGML_FP32_TO_FP16(tmp[1]); - p[2] = GGML_FP32_TO_FP16(tmp[2]); - p[3] = GGML_FP32_TO_FP16(tmp[3]); -} - -#define GGML_F16x4 v128_t -#define GGML_F16x4_ZERO wasm_f32x4_splat(0.0f) -#define GGML_F16x4_SET1(x) wasm_f32x4_splat(x) -#define GGML_F16x4_LOAD(x) __wasm_f16x4_load(x) -#define GGML_F16x4_STORE(x, y) __wasm_f16x4_store(x, y) -#define GGML_F16x4_FMA GGML_F32x4_FMA -#define GGML_F16x4_ADD wasm_f32x4_add -#define GGML_F16x4_MUL wasm_f32x4_mul -#define GGML_F16x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F16_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ - } \ - res = (ggml_float) (wasm_f32x4_extract_lane(x[0], 0) + \ - wasm_f32x4_extract_lane(x[0], 1) + \ - wasm_f32x4_extract_lane(x[0], 2) + \ - wasm_f32x4_extract_lane(x[0], 3)); \ -} - -#define GGML_F16_VEC GGML_F16x4 -#define GGML_F16_VEC_ZERO GGML_F16x4_ZERO -#define GGML_F16_VEC_SET1 GGML_F16x4_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F16x4_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F16x4_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F16x4_FMA -#define GGML_F16_VEC_ADD GGML_F16x4_ADD -#define GGML_F16_VEC_MUL GGML_F16x4_MUL -#define GGML_F16_VEC_REDUCE GGML_F16x4_REDUCE - -#elif defined(__SSE3__) - -#define GGML_SIMD - -// F32 SSE - -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 __m128 -#define GGML_F32x4_ZERO _mm_setzero_ps() -#define GGML_F32x4_SET1(x) _mm_set1_ps(x) -#define GGML_F32x4_LOAD _mm_loadu_ps -#define GGML_F32x4_STORE _mm_storeu_ps -#if defined(__FMA__) - // TODO: Does this work? - #define GGML_F32x4_FMA(a, b, c) _mm_fmadd_ps(b, c, a) -#else - #define GGML_F32x4_FMA(a, b, c) _mm_add_ps(_mm_mul_ps(b, c), a) -#endif -#define GGML_F32x4_ADD _mm_add_ps -#define GGML_F32x4_MUL _mm_mul_ps -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm_add_ps(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = _mm_add_ps(x[i], x[offset+i]); \ - } \ - const __m128 t0 = _mm_hadd_ps(x[0], x[0]); \ - res = (ggml_float) _mm_cvtss_f32(_mm_hadd_ps(t0, t0)); \ -} -// TODO: is this optimal ? - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 SSE - -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 4 - -static inline __m128 __sse_f16x4_load(const ggml_fp16_t * x) { - float tmp[4]; - - tmp[0] = GGML_FP16_TO_FP32(x[0]); - tmp[1] = GGML_FP16_TO_FP32(x[1]); - tmp[2] = GGML_FP16_TO_FP32(x[2]); - tmp[3] = GGML_FP16_TO_FP32(x[3]); - - return _mm_loadu_ps(tmp); -} - -static inline void __sse_f16x4_store(ggml_fp16_t * x, __m128 y) { - float arr[4]; - - _mm_storeu_ps(arr, y); - - x[0] = GGML_FP32_TO_FP16(arr[0]); - x[1] = GGML_FP32_TO_FP16(arr[1]); - x[2] = GGML_FP32_TO_FP16(arr[2]); - x[3] = GGML_FP32_TO_FP16(arr[3]); -} - -#define GGML_F32Cx4 __m128 -#define GGML_F32Cx4_ZERO _mm_setzero_ps() -#define GGML_F32Cx4_SET1(x) _mm_set1_ps(x) -#define GGML_F32Cx4_LOAD(x) __sse_f16x4_load(x) -#define GGML_F32Cx4_STORE(x, y) __sse_f16x4_store(x, y) -#define GGML_F32Cx4_FMA GGML_F32x4_FMA -#define GGML_F32Cx4_ADD _mm_add_ps -#define GGML_F32Cx4_MUL _mm_mul_ps -#define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE - -#define GGML_F16_VEC GGML_F32Cx4 -#define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx4_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx4_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE - -#elif defined(__loongarch_asx) - -#define GGML_SIMD - -// F32 LASX -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 8 - -#define GGML_F32x8 __m256 -#define GGML_F32x8_ZERO (__m256)__lasx_xvldi(0) -#define GGML_F32x8_SET1(x) (__m256)__lasx_xvreplfr2vr_s((x)) -#define GGML_F32x8_LOAD(x) (__m256)__lasx_xvld((x), 0) -#define GGML_F32x8_STORE(x,y) __lasx_xvst((y), (x), 0) -#define GGML_F32x8_FMA(a, b, c) __lasx_xvfmadd_s(b, c, a) -#define GGML_F32x8_ADD __lasx_xvfadd_s -#define GGML_F32x8_MUL __lasx_xvfmul_s -#define GGML_F32x8_REDUCE(res, x) \ -do { \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ - } \ - float *tmp_p = (float *)&x[0]; \ - res = tmp_p[0] + tmp_p[1] + tmp_p[2] + tmp_p[3] + tmp_p[4] + tmp_p[5] + tmp_p[6] + tmp_p[7]; \ -} while (0) -// TODO: is this optimal ? - -#define GGML_F32_VEC GGML_F32x8 -#define GGML_F32_VEC_ZERO GGML_F32x8_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x8_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x8_LOAD -#define GGML_F32_VEC_STORE GGML_F32x8_STORE -#define GGML_F32_VEC_FMA GGML_F32x8_FMA -#define GGML_F32_VEC_ADD GGML_F32x8_ADD -#define GGML_F32_VEC_MUL GGML_F32x8_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x8_REDUCE - -// F16 LASX - -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 8 - -// F16 arithmetic is not supported by LASX, so we use F32 instead - -#define GGML_F32Cx8 __m256 -#define GGML_F32Cx8_ZERO (__m256)__lasx_xvldi(0) -#define GGML_F32Cx8_SET1(x) (__m256)__lasx_xvreplgr2vr_w((x)) - -static inline __m256 __lasx_f32cx8_load(const ggml_fp16_t * x) { - __m256i a; - memcpy(&a, x, sizeof(ggml_fp16_t) * 8); - a = __lasx_xvpermi_d(a, 0 | (1 << 4)); - return __lasx_xvfcvtl_s_h(a); -} - -static inline void __lasx_f32cx8_store(ggml_fp16_t * x, __m256 y) { - __m256i a = __lasx_xvfcvt_h_s(y, y); - a = __lasx_xvpermi_d(a, 0 | (2 << 2)); - memcpy(x, &a, sizeof(ggml_fp16_t) * 8); -} -#define GGML_F32Cx8_LOAD(x) __lasx_f32cx8_load(x) -#define GGML_F32Cx8_STORE(x, y) __lasx_f32cx8_store(x, y) - -#define GGML_F32Cx8_FMA GGML_F32x8_FMA -#define GGML_F32Cx8_ADD __lasx_xvfadd_s -#define GGML_F32Cx8_MUL __lasx_xvfmul_s -#define GGML_F32Cx8_REDUCE GGML_F32x8_REDUCE - -#define GGML_F16_VEC GGML_F32Cx8 -#define GGML_F16_VEC_ZERO GGML_F32Cx8_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx8_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx8_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx8_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx8_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx8_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx8_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx8_REDUCE - -#elif defined(__loongarch_sx) - -#define GGML_SIMD - -// F32 LSX - -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 __m128 -#define GGML_F32x4_ZERO __lsx_vldi(0) -#define GGML_F32x4_SET1(x) __lsx_vinsgr2vr_w(__lsx_vldi(0),(x), 0) -#define GGML_F32x4_LOAD(x) __lsx_vld((x), 0) -#define GGML_F32x4_STORE((x),(y)) __lsx_vst((y), (x), 0) -#define GGML_F32x4_FMA(a, b, c) __lsx_vfmadd_s(b, c, a) -#define GGML_F32x4_ADD __lsx_vfadd_s -#define GGML_F32x4_MUL __lsx_vfmul_s -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ - } \ - __m128i tmp = __lsx_vsrli_d((__m128i) x[0], 32); \ - tmp = (__m128i) __lsx_vfadd_s((__m128) tmp, x[0]); \ - tmp = __lsx_vpickev_w(__lsx_vldi(0), tmp); \ - const __m128 t0 = __lsx_vshuf4i_w(tmp, 0x88); \ - tmp = __lsx_vsrli_d((__m128i) t0, 32); \ - tmp = (__m128i) __lsx_vfadd_s((__m128) tmp, t0); \ - tmp = __lsx_vpickev_w(__lsx_vldi(0), tmp); \ - res = (ggml_float) __lsx_vpickve2gr_w(__lsx_vshuf4i_w(tmp, 0x88), 0); \ -} - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 LSX - -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 4 - -static inline __m128 __lsx_f16x4_load(const ggml_fp16_t * x) { - float tmp[4]; - - tmp[0] = GGML_FP16_TO_FP32(x[0]); - tmp[1] = GGML_FP16_TO_FP32(x[1]); - tmp[2] = GGML_FP16_TO_FP32(x[2]); - tmp[3] = GGML_FP16_TO_FP32(x[3]); - - return __lsx_vld(tmp, 0); -} - -static inline void __lsx_f16x4_store(ggml_fp16_t * x, __m128 y) { - float arr[4]; - - __lsx_vst(y, arr, 0); - - x[0] = GGML_FP32_TO_FP16(arr[0]); - x[1] = GGML_FP32_TO_FP16(arr[1]); - x[2] = GGML_FP32_TO_FP16(arr[2]); - x[3] = GGML_FP32_TO_FP16(arr[3]); -} - -#define GGML_F32Cx4 __m128 -#define GGML_F32Cx4_ZERO __lsx_vldi(0) -#define GGML_F32Cx4_SET1(x) __lsx_vinsgr2vr_w(__lsx_vldi(0),(x), 0) -#define GGML_F32Cx4_LOAD(x) __lsx_f16x4_load(x) -#define GGML_F32Cx4_STORE(x, y) __lsx_f16x4_store(x, y) -#define GGML_F32Cx4_FMA GGML_F32x4_FMA -#define GGML_F32Cx4_ADD __lsx_vfadd_s -#define GGML_F32Cx4_MUL __lsx_vfmul_s -#define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE - -#define GGML_F16_VEC GGML_F32Cx4 -#define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx4_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx4_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE - -#elif defined(__VXE__) || defined(__VXE2__) - -#define GGML_SIMD - -// F32 s390x - -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 - -#define GGML_F32x4 __vector float -#define GGML_F32x4_ZERO vec_splats(0.0f) -#define GGML_F32x4_SET1 vec_splats -#define GGML_F32x4_LOAD(p) vec_xl(0, p) -#define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) -#define GGML_F32x4_FMA(a, b, c) vec_madd(b, c, a) -#define GGML_F32x4_ADD vec_add -#define GGML_F32x4_MUL vec_mul -#define GGML_F32x4_REDUCE(res, x) \ -{ \ - int offset = GGML_F32_ARR >> 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset + i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset + i]); \ - } \ - offset >>= 1; \ - for (int i = 0; i < offset; ++i) { \ - x[i] = vec_add(x[i], x[offset + i]); \ - } \ - res = vec_extract(x[0], 0) + \ - vec_extract(x[0], 1) + \ - vec_extract(x[0], 2) + \ - vec_extract(x[0], 3); \ -} - -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE - -// F16 s390x -#define GGML_F16_STEP GGML_F32_STEP -#define GGML_F16_EPR GGML_F32_EPR - -static inline __vector float __lzs_f16cx4_load(const ggml_fp16_t * x) { - float tmp[4]; - - for (int i = 0; i < 4; i++) { - tmp[i] = GGML_FP16_TO_FP32(x[i]); - } - - return vec_xl(0, tmp); -} - -static inline void __lzs_f16cx4_store(ggml_fp16_t * x, __vector float y) { - float arr[4]; - - vec_xst(y, 0, arr); - - for (int i = 0; i < 4; i++) { - x[i] = GGML_FP32_TO_FP16(arr[i]); - } -} - -#define GGML_F16_VEC GGML_F32x4 -#define GGML_F16_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F16_VEC_LOAD(p, i) __lzs_f16cx4_load(p) -#define GGML_F16_VEC_STORE(p, r, i) __lzs_f16cx4_store(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32x4_FMA -#define GGML_F16_VEC_ADD GGML_F32x4_ADD -#define GGML_F16_VEC_MUL GGML_F32x4_MUL -#define GGML_F16_VEC_REDUCE GGML_F32x4_REDUCE - -#endif - -// GGML_F32_ARR / GGML_F16_ARR -// number of registers to use per step -#ifdef GGML_SIMD -#define GGML_F32_ARR (GGML_F32_STEP/GGML_F32_EPR) -#define GGML_F16_ARR (GGML_F16_STEP/GGML_F16_EPR) -#endif - // // Threading defs // @@ -1404,9708 +478,460 @@ struct ggml_compute_state { int ith; }; -// -// fundamental operations -// - -inline static void ggml_vec_set_i8(const int n, int8_t * x, const int8_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_set_i16(const int n, int16_t * x, const int16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } - -inline static void ggml_vec_set_i32(const int n, int32_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_cpy_i32(const int n, int32_t * y, const int32_t * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } - -inline static void ggml_vec_set_f16(const int n, ggml_fp16_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_set_bf16(const int n, ggml_bf16_t * x, const ggml_bf16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_add_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] + y[i]; } -inline static void ggml_vec_add_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { - for (int i = 0; i < n; ++i) { - z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) + GGML_FP16_TO_FP32(y[i])); - } -} -inline static void ggml_vec_add1_f32(const int n, float * z, const float * x, const float v) { for (int i = 0; i < n; ++i) z[i] = x[i] + v; } -inline static void ggml_vec_acc_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] += x[i]; } -inline static void ggml_vec_acc1_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] += v; } -inline static void ggml_vec_sub_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] - y[i]; } -inline static void ggml_vec_sub_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { - for (int i = 0; i < n; ++i) { - z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) - GGML_FP16_TO_FP32(y[i])); - } -} -inline static void ggml_vec_set_f32 (const int n, float * x, const float v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_cpy_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } -inline static void ggml_vec_neg_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = -x[i]; } -inline static void ggml_vec_neg_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(-GGML_FP16_TO_FP32(x[i])); - } -} - -inline static void ggml_vec_mul_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]*y[i]; } -inline static void ggml_vec_mul_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { - for (int i = 0; i < n; ++i) { - z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) * GGML_FP16_TO_FP32(y[i])); - } +// Helpers for polling loops +#if defined(__aarch64__) && ( defined(__clang__) || defined(__GNUC__) ) +static inline void ggml_thread_cpu_relax(void) { + __asm__ volatile("yield" ::: "memory"); } -inline static void ggml_vec_div_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]/y[i]; } -inline static void ggml_vec_div_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { - for (int i = 0; i < n; ++i) { - z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) / GGML_FP16_TO_FP32(y[i])); - } +#elif defined(__x86_64__) +static inline void ggml_thread_cpu_relax(void) { + _mm_pause(); } - -static void ggml_vec_dot_f32(int n, float * GGML_RESTRICT s, size_t bs, const float * GGML_RESTRICT x, size_t bx, const float * GGML_RESTRICT y, size_t by, int nrc) { - assert(nrc == 1); - UNUSED(nrc); - UNUSED(bx); - UNUSED(by); - UNUSED(bs); - -#if defined(GGML_SIMD) - float sumf = 0.0f; - const int np = (n & ~(GGML_F32_STEP - 1)); - - GGML_F32_VEC sum[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; - - GGML_F32_VEC ax[GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; - - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); - - sum[j] = GGML_F32_VEC_FMA(sum[j], ax[j], ay[j]); - } - } - - // reduce sum0..sum3 to sum0 - GGML_F32_VEC_REDUCE(sumf, sum); - - // leftovers - for (int i = np; i < n; ++i) { - sumf += x[i]*y[i]; - } #else - // scalar - ggml_float sumf = 0.0; - for (int i = 0; i < n; ++i) { - sumf += (ggml_float)(x[i]*y[i]); - } +static inline void ggml_thread_cpu_relax(void) {;} #endif - *s = sumf; -} +// +// NUMA support +// -static void ggml_vec_dot_bf16(int n, float * GGML_RESTRICT s, size_t bs, ggml_bf16_t * GGML_RESTRICT x, size_t bx, ggml_bf16_t * GGML_RESTRICT y, size_t by, int nrc) { - assert(nrc == 1); - UNUSED(nrc); - UNUSED(bx); - UNUSED(by); - UNUSED(bs); - int i = 0; - ggml_float sumf = 0; +#define GGML_NUMA_MAX_NODES 8 +#define GGML_NUMA_MAX_CPUS 512 -#if defined(__AVX512BF16__) - __m512 c1 = _mm512_setzero_ps(); - __m512 c2 = _mm512_setzero_ps(); - for (; i + 64 <= n; i += 64) { - c1 = _mm512_dpbf16_ps(c1, m512bh(_mm512_loadu_si512((x + i))), - m512bh(_mm512_loadu_si512((y + i)))); - c2 = _mm512_dpbf16_ps(c2, m512bh(_mm512_loadu_si512((x + i + 32))), - m512bh(_mm512_loadu_si512((y + i + 32)))); - } - sumf += (ggml_float)_mm512_reduce_add_ps(c1); - sumf += (ggml_float)_mm512_reduce_add_ps(c2); - -#elif defined(__AVX512F__) -#define LOAD(p) _mm512_castsi512_ps(_mm512_slli_epi32(_mm512_cvtepu16_epi32(_mm256_loadu_si256((const __m256i *)(p))), 16)) - __m512 c1 = _mm512_setzero_ps(); - __m512 c2 = _mm512_setzero_ps(); - for (; i + 32 <= n; i += 32) { - c1 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i), LOAD(y + i)), c1); - c2 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c2); - } - sumf += (ggml_float)_mm512_reduce_add_ps(c1); - sumf += (ggml_float)_mm512_reduce_add_ps(c2); +struct ggml_numa_node { + uint32_t cpus[GGML_NUMA_MAX_CPUS]; // hardware threads on this node + uint32_t n_cpus; +}; -#undef LOAD -#elif defined(__AVX2__) || defined(__AVX__) -#if defined(__AVX2__) -#define LOAD(p) _mm256_castsi256_ps(_mm256_slli_epi32(_mm256_cvtepu16_epi32(_mm_loadu_si128((const __m128i *)(p))), 16)) +struct ggml_numa_nodes { + enum ggml_numa_strategy numa_strategy; + struct ggml_numa_node nodes[GGML_NUMA_MAX_NODES]; + uint32_t n_nodes; + uint32_t total_cpus; // hardware threads on system + uint32_t current_node; // node on which main process is execting +#if defined(__gnu_linux__) + cpu_set_t cpuset; // cpuset from numactl #else -#define LOAD(p) _mm256_castsi256_ps(_mm256_insertf128_si256(_mm256_castsi128_si256(_mm_slli_epi32(_mm_cvtepu16_epi32(_mm_loadu_si128((const __m128i *)(p))), 16)), (_mm_slli_epi32(_mm_cvtepu16_epi32(_mm_bsrli_si128(_mm_loadu_si128((const __m128i *)(p)), 8)), 16)), 1)) -#endif - __m256 c1 = _mm256_setzero_ps(); - __m256 c2 = _mm256_setzero_ps(); - __m256 c3 = _mm256_setzero_ps(); - __m256 c4 = _mm256_setzero_ps(); - for (; i + 32 <= n; i += 32) { - c1 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i), LOAD(y + i)), c1); - c2 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 8), LOAD(y + i + 8)), c2); - c3 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c3); - c4 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 24), LOAD(y + i + 24)), c4); - } - __m128 g; - c1 = _mm256_add_ps(_mm256_add_ps(c1, c3), - _mm256_add_ps(c2, c4)); - g = _mm_add_ps(_mm256_extractf128_ps(c1, 1), - _mm256_castps256_ps128(c1)); - g = _mm_add_ps(g, _mm_movehl_ps(g, g)); - g = _mm_add_ss(g, _mm_movehdup_ps(g)); - sumf += (ggml_float)_mm_cvtss_f32(g); - -#undef LOAD + uint32_t cpuset; // no NUMA support outside of Linux at this time. Use a portable datatype #endif +}; - for (; i < n; ++i) { - sumf += (ggml_float)(GGML_BF16_TO_FP32(x[i]) * - GGML_BF16_TO_FP32(y[i])); - } - *s = sumf; -} +// +// ggml state +// -static void ggml_vec_dot_f16(int n, float * GGML_RESTRICT s, size_t bs, ggml_fp16_t * GGML_RESTRICT x, size_t bx, ggml_fp16_t * GGML_RESTRICT y, size_t by, int nrc) { - assert(nrc == 1); - UNUSED(nrc); - UNUSED(bx); - UNUSED(by); - UNUSED(bs); +struct ggml_state { + struct ggml_numa_nodes numa; +}; - ggml_float sumf = 0.0; +static struct ggml_state g_state = {0}; -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); +void ggml_barrier(struct ggml_threadpool * tp) { + int n_threads = atomic_load_explicit(&tp->n_threads_cur, memory_order_relaxed); + if (n_threads == 1) { + return; + } - GGML_F16_VEC sum[GGML_F16_ARR] = { GGML_F16_VEC_ZERO }; +#ifdef GGML_USE_OPENMP + #pragma omp barrier +#else + int n_passed = atomic_load_explicit(&tp->n_barrier_passed, memory_order_relaxed); - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; + // enter barrier (full seq-cst fence) + int n_barrier = atomic_fetch_add_explicit(&tp->n_barrier, 1, memory_order_seq_cst); - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + if (n_barrier == (n_threads - 1)) { + // last thread + atomic_store_explicit(&tp->n_barrier, 0, memory_order_relaxed); - sum[j] = GGML_F16_VEC_FMA(sum[j], ax[j], ay[j]); - } + // exit barrier (fill seq-cst fence) + atomic_fetch_add_explicit(&tp->n_barrier_passed, 1, memory_order_seq_cst); + return; } - // reduce sum0..sum3 to sum0 - GGML_F16_VEC_REDUCE(sumf, sum); - - // leftovers - for (int i = np; i < n; ++i) { - sumf += (ggml_float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); - } -#else - for (int i = 0; i < n; ++i) { - sumf += (ggml_float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); + // wait for other threads + while (atomic_load_explicit(&tp->n_barrier_passed, memory_order_relaxed) == n_passed) { + ggml_thread_cpu_relax(); } -#endif - *s = sumf; + // exit barrier (full seq-cst fence) + // TSAN doesn't support standalone fence yet, we use a dummy read-modify-write instead + #ifdef GGML_TSAN_ENABLED + atomic_fetch_add_explicit(&tp->n_barrier_passed, 0, memory_order_seq_cst); + #else + atomic_thread_fence(memory_order_seq_cst); + #endif +#endif } -// compute GGML_VEC_DOT_UNROLL dot products at once -// xs - x row stride in bytes -inline static void ggml_vec_dot_f16_unroll(const int n, const int xs, float * GGML_RESTRICT s, void * GGML_RESTRICT xv, ggml_fp16_t * GGML_RESTRICT y) { - ggml_float sumf[GGML_VEC_DOT_UNROLL] = { 0.0 }; +#if defined(__gnu_linux__) +static cpu_set_t ggml_get_numa_affinity(void) { + cpu_set_t cpuset; + pthread_t thread; + thread = pthread_self(); + CPU_ZERO(&cpuset); + pthread_getaffinity_np(thread, sizeof(cpu_set_t), &cpuset); + return cpuset; +} +#else +static uint32_t ggml_get_numa_affinity(void) { + return 0; // no NUMA support +} +#endif - ggml_fp16_t * GGML_RESTRICT x[GGML_VEC_DOT_UNROLL]; +void ggml_numa_init(enum ggml_numa_strategy numa_flag) { + if (g_state.numa.n_nodes > 0) { + fprintf(stderr, "ggml_numa_init: NUMA already initialized\n"); - for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { - x[i] = (ggml_fp16_t *) ((char *) xv + i*xs); + return; } -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); - - GGML_F16_VEC sum[GGML_VEC_DOT_UNROLL][GGML_F16_ARR] = { { GGML_F16_VEC_ZERO } }; - - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; +#if defined(__gnu_linux__) + struct stat st; + char path[256]; + int rv; - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + // set numa scheme + g_state.numa.numa_strategy = numa_flag; - for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { - ax[j] = GGML_F16_VEC_LOAD(x[k] + i + j*GGML_F16_EPR, j); + GGML_PRINT_DEBUG("numa strategy %u\n",g_state.numa.numa_strategy); - sum[k][j] = GGML_F16_VEC_FMA(sum[k][j], ax[j], ay[j]); - } - } - } + g_state.numa.cpuset = ggml_get_numa_affinity(); - // reduce sum0..sum3 to sum0 - for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { - GGML_F16_VEC_REDUCE(sumf[k], sum[k]); - } - - // leftovers - for (int i = np; i < n; ++i) { - for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { - sumf[j] += (ggml_float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); - } - } -#else - for (int i = 0; i < n; ++i) { - for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { - sumf[j] += (ggml_float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); - } - } -#endif - - for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { - s[i] = sumf[i]; - } -} - -inline static void ggml_vec_mad_f32(const int n, float * GGML_RESTRICT y, const float * GGML_RESTRICT x, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F32_STEP - 1)); - - GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); - - GGML_F32_VEC ax[GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; - - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_FMA(ay[j], ax[j], vx); - - GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); - } + // enumerate nodes + while (g_state.numa.n_nodes < GGML_NUMA_MAX_NODES) { + rv = snprintf(path, sizeof(path), "/sys/devices/system/node/node%u", g_state.numa.n_nodes); + GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); + if (stat(path, &st) != 0) { break; } + ++g_state.numa.n_nodes; } - // leftovers - for (int i = np; i < n; ++i) { - y[i] += x[i]*v; - } -#else - // scalar - for (int i = 0; i < n; ++i) { - y[i] += x[i]*v; + // enumerate CPUs + while (g_state.numa.total_cpus < GGML_NUMA_MAX_CPUS) { + rv = snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%u", g_state.numa.total_cpus); + GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); + if (stat(path, &st) != 0) { break; } + ++g_state.numa.total_cpus; } -#endif -} -inline static void ggml_vec_mad_f16(const int n, ggml_fp16_t * GGML_RESTRICT y, const ggml_fp16_t * GGML_RESTRICT x, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); - - GGML_F16_VEC vx = GGML_F16_VEC_SET1(v); - - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; - - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_FMA(ay[j], ax[j], vx); - - GGML_F16_VEC_STORE(y + i + j*GGML_F16_EPR, ay, j); - } - } + GGML_PRINT_DEBUG("found %u numa nodes, %u CPUs\n", g_state.numa.n_nodes, g_state.numa.total_cpus); - // leftovers - for (int i = np; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); - } + // figure out which node we're on + uint current_cpu; + int getcpu_ret = 0; +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 33) || defined(__COSMOPOLITAN__) + getcpu_ret = getcpu(¤t_cpu, &g_state.numa.current_node); #else - // scalar - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); - } + // old glibc doesn't have a wrapper for this call. Fall back on direct syscall +# if !defined(SYS_getcpu) && defined(SYS_get_cpu) +# define SYS_getcpu SYS_get_cpu // some older glibc versions use this name +# endif + getcpu_ret = syscall(SYS_getcpu, ¤t_cpu, &g_state.numa.current_node); #endif -} - -// xs and vs are byte strides of x and v -inline static void ggml_vec_mad_f32_unroll(const int n, const int xs, const int vs, float * GGML_RESTRICT y, const float * GGML_RESTRICT xv, const float * GGML_RESTRICT vv) { - - const float * GGML_RESTRICT x[GGML_VEC_MAD_UNROLL]; - const float * GGML_RESTRICT v[GGML_VEC_MAD_UNROLL]; - - for (int i = 0; i < GGML_VEC_MAD_UNROLL; ++i) { - x[i] = (const float *) ((const char *) xv + i*xs); - v[i] = (const float *) ((const char *) vv + i*vs); - } -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F32_STEP - 1)); - - GGML_F32_VEC vx[GGML_VEC_MAD_UNROLL]; - - for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { - vx[k] = GGML_F32_VEC_SET1(v[k][0]); + if (g_state.numa.n_nodes < 1 || g_state.numa.total_cpus < 1 || getcpu_ret != 0) { + g_state.numa.n_nodes = 0; + return; } - GGML_F32_VEC ax[GGML_VEC_MAD_UNROLL][GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; - - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + GGML_PRINT_DEBUG("found our process on numa node %u, CPU %u\n", g_state.numa.current_node, current_cpu); - for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { - ax[k][j] = GGML_F32_VEC_LOAD(x[k] + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_FMA(ay[j], ax[k][j], vx[k]); + for (uint32_t n = 0; n < g_state.numa.n_nodes; ++n) { + struct ggml_numa_node * node = &g_state.numa.nodes[n]; + GGML_PRINT_DEBUG("CPUs on node %u:", n); + node->n_cpus = 0; + for (uint32_t c = 0; c < g_state.numa.total_cpus; ++c) { + rv = snprintf(path, sizeof(path), "/sys/devices/system/node/node%u/cpu%u", n, c); + GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); + if (stat(path, &st) == 0) { + node->cpus[node->n_cpus++] = c; + GGML_PRINT_DEBUG(" %u", c); } - - GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); } + GGML_PRINT_DEBUG("\n"); } - // leftovers - for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { - for (int i = np; i < n; ++i) { - y[i] += x[k][i]*v[k][0]; + if (ggml_is_numa()) { + FILE *fptr = fopen("/proc/sys/kernel/numa_balancing", "r"); + if (fptr != NULL) { + char buf[42]; + if (fgets(buf, sizeof(buf), fptr) && strncmp(buf, "0\n", sizeof(buf)) != 0) { + GGML_LOG_WARN("/proc/sys/kernel/numa_balancing is enabled, this has been observed to impair performance\n"); + } + fclose(fptr); } } #else - // scalar - for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { - for (int i = 0; i < n; ++i) { - y[i] += x[k][i]*v[k][0]; - } - } + UNUSED(numa_flag); + // TODO #endif } -//inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] *= v; } -inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { -#if defined(GGML_USE_ACCELERATE) - vDSP_vsmul(y, 1, &v, y, 1, n); -#elif defined(GGML_SIMD) - const int np = (n & ~(GGML_F32_STEP - 1)); - - GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); - - GGML_F32_VEC ay[GGML_F32_ARR]; - - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_MUL(ay[j], vx); +bool ggml_is_numa(void) { + return g_state.numa.n_nodes > 1; +} - GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); - } - } +#if defined(__ARM_ARCH) - // leftovers - for (int i = np; i < n; ++i) { - y[i] *= v; - } -#else - // scalar - for (int i = 0; i < n; ++i) { - y[i] *= v; - } +#if defined(__linux__) && defined(__aarch64__) +#include +#elif defined(__APPLE__) +#include #endif -} -inline static void ggml_vec_scale_f16(const int n, ggml_fp16_t * y, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); +#if !defined(HWCAP2_I8MM) +#define HWCAP2_I8MM (1 << 13) +#endif - GGML_F16_VEC vx = GGML_F16_VEC_SET1(v); +#if !defined(HWCAP2_SME) +#define HWCAP2_SME (1 << 23) +#endif - GGML_F16_VEC ay[GGML_F16_ARR]; +static void ggml_init_arm_arch_features(void) { +#if defined(__linux__) && defined(__aarch64__) + uint32_t hwcap = getauxval(AT_HWCAP); + uint32_t hwcap2 = getauxval(AT_HWCAP2); - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_MUL(ay[j], vx); + ggml_arm_arch_features.has_neon = !!(hwcap & HWCAP_ASIMD); + ggml_arm_arch_features.has_dotprod = !!(hwcap & HWCAP_ASIMDDP); + ggml_arm_arch_features.has_i8mm = !!(hwcap2 & HWCAP2_I8MM); + ggml_arm_arch_features.has_sve = !!(hwcap & HWCAP_SVE); + ggml_arm_arch_features.has_sme = !!(hwcap2 & HWCAP2_SME); - GGML_F16_VEC_STORE(y + i + j*GGML_F16_EPR, ay, j); - } +#if defined(__ARM_FEATURE_SVE) + ggml_arm_arch_features.sve_cnt = PR_SVE_VL_LEN_MASK & prctl(PR_SVE_GET_VL); +#endif +#elif defined(__APPLE__) + int oldp = 0; + size_t size = sizeof(oldp); + if (sysctlbyname("hw.optional.AdvSIMD", &oldp, &size, NULL, 0) != 0) { + oldp = 0; } + ggml_arm_arch_features.has_neon = oldp; - // leftovers - for (int i = np; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i])*v); - } -#else - // scalar - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i])*v); + if (sysctlbyname("hw.optional.arm.FEAT_DotProd", &oldp, &size, NULL, 0) != 0) { + oldp = 0; } -#endif -} + ggml_arm_arch_features.has_dotprod = oldp; -inline static void ggml_vec_norm_f32 (const int n, float * s, const float * x) { ggml_vec_dot_f32(n, s, 0, x, 0, x, 0, 1); *s = sqrtf(*s); } -inline static void ggml_vec_sqr_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]*x[i]; } -inline static void ggml_vec_sqr_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16(v*v); - } -} -inline static void ggml_vec_sqrt_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sqrtf(x[i]); } -inline static void ggml_vec_sqrt_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(sqrtf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_log_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = logf(x[i]); } -inline static void ggml_vec_log_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(logf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_sin_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sinf(x[i]); } -inline static void ggml_vec_sin_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(sinf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_cos_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = cosf(x[i]); } -inline static void ggml_vec_cos_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(cosf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_abs_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fabsf(x[i]); } -inline static void ggml_vec_abs_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(fabsf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_sgn_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); } -inline static void ggml_vec_sgn_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16((v > 0.f) ? 1.f : ((v < 0.f) ? -1.f : 0.f)); - } -} -inline static void ggml_vec_step_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : 0.f; } -inline static void ggml_vec_step_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16((GGML_FP16_TO_FP32(x[i]) > 0.f) ? 1.f : 0.f); - } -} -inline static void ggml_vec_tanh_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = tanhf(x[i]); } -inline static void ggml_vec_tanh_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(tanhf(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_elu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : expm1f(x[i]); } -inline static void ggml_vec_elu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(expm1f(GGML_FP16_TO_FP32(x[i]))); - } -} -inline static void ggml_vec_relu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : 0.f; } -inline static void ggml_vec_relu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16((v > 0.f) ? v : 0.f); - } -} -inline static void ggml_vec_leaky_relu_f32 (const int n, float * y, const float * x, const float ns) { for (int i = 0; i < n; ++i) y[i] = ((x[i] > 0.f) ? x[i] : 0.f) + ns * ((x[i] < 0.0f) ? x[i] : 0.f); } -inline static void ggml_vec_leaky_relu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x, const float ns) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16(((v > 0.f) ? v : 0.f) + ns * ((v < 0.0f) ? v : 0.f)); - } -} -inline static void ggml_vec_sigmoid_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = 1.f / (1.f + expf(-x[i])); } -inline static void ggml_vec_sigmoid_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(1.f / (1.f + expf(-GGML_FP16_TO_FP32(x[i])))); - } -} -// TODO: optimize performance -inline static void ggml_vec_hardswish_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i] * fminf(1.0f, fmaxf(0.0f, (x[i] + 3.0f) / 6.0f)); } -inline static void ggml_vec_hardswish_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16(v * fminf(1.0f, fmaxf(0.0f, (v + 3.0f) / 6.0f))); - } -} -inline static void ggml_vec_hardsigmoid_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fminf(1.0f, fmaxf(0.0f, (x[i] + 3.0f) / 6.0f)); } -inline static void ggml_vec_hardsigmoid_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(fminf(1.0f, fmaxf(0.0f, (GGML_FP16_TO_FP32(x[i]) + 3.0f) / 6.0f))); - } -} -inline static void ggml_vec_exp_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = expf(x[i]); } -inline static void ggml_vec_exp_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(expf(GGML_FP16_TO_FP32(x[i]))); + if (sysctlbyname("hw.optional.arm.FEAT_I8MM", &oldp, &size, NULL, 0) != 0) { + oldp = 0; } -} - -static const float GELU_COEF_A = 0.044715f; -static const float GELU_QUICK_COEF = -1.702f; -static const float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f; - -inline static float ggml_gelu_f32(float x) { - return 0.5f*x*(1.0f + tanhf(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); -} + ggml_arm_arch_features.has_i8mm = oldp; -inline static void ggml_vec_gelu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - const uint16_t * i16 = (const uint16_t *) x; - for (int i = 0; i < n; ++i) { - y[i] = ggml_table_gelu_f16[i16[i]]; + if (sysctlbyname("hw.optional.arm.FEAT_SME", &oldp, &size, NULL, 0) != 0) { + oldp = 0; } -} + ggml_arm_arch_features.has_sme = oldp; -#ifdef GGML_GELU_FP16 -inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { - uint16_t t; - for (int i = 0; i < n; ++i) { - if (x[i] <= -10.0f) { - y[i] = 0.0f; - } else if (x[i] >= 10.0f) { - y[i] = x[i]; - } else { - ggml_fp16_t fp16 = GGML_FP32_TO_FP16(x[i]); - memcpy(&t, &fp16, sizeof(uint16_t)); - y[i] = GGML_FP16_TO_FP32(ggml_table_gelu_f16[t]); - } - } -} + ggml_arm_arch_features.has_sve = 0; + ggml_arm_arch_features.sve_cnt = 0; #else -inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { - for (int i = 0; i < n; ++i) { - y[i] = ggml_gelu_f32(x[i]); - } -} +// Run-time CPU feature detection not implemented for this platform, fallback to compile time +#if defined(__ARM_NEON) + ggml_arm_arch_features.has_neon = 1; +#else + ggml_arm_arch_features.has_neon = 0; #endif -inline static float ggml_gelu_quick_f32(float x) { - return x*(1.0f/(1.0f+expf(GELU_QUICK_COEF*x))); -} - -//inline static void ggml_vec_gelu_quick_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { -// const uint16_t * i16 = (const uint16_t *) x; -// for (int i = 0; i < n; ++i) { -// y[i] = ggml_table_gelu_quick_f16[i16[i]]; -// } -//} - -#ifdef GGML_GELU_QUICK_FP16 -inline static void ggml_vec_gelu_quick_f32(const int n, float * y, const float * x) { - uint16_t t; - for (int i = 0; i < n; ++i) { - ggml_fp16_t fp16 = GGML_FP32_TO_FP16(x[i]); - memcpy(&t, &fp16, sizeof(uint16_t)); - y[i] = GGML_FP16_TO_FP32(ggml_table_gelu_quick_f16[t]); - } -} +#if defined(__ARM_FEATURE_MATMUL_INT8) + ggml_arm_arch_features.has_i8mm = 1; #else -inline static void ggml_vec_gelu_quick_f32(const int n, float * y, const float * x) { - for (int i = 0; i < n; ++i) { - y[i] = ggml_gelu_quick_f32(x[i]); - } -} + ggml_arm_arch_features.has_i8mm = 0; #endif -inline static void ggml_vec_gelu_quick_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - float v = GGML_FP16_TO_FP32(x[i]); - y[i] = GGML_FP32_TO_FP16(v*(1.0f/(1.0f+expf(GELU_QUICK_COEF*v)))); - } -} - -// Sigmoid Linear Unit (SiLU) function -inline static float ggml_silu_f32(float x) { - return x/(1.0f + expf(-x)); -} -inline static ggml_fp16_t ggml_silu_f16(ggml_fp16_t x) { - float v = GGML_FP16_TO_FP32(x); - return GGML_FP32_TO_FP16(v/(1.0f + expf(-v))); -} - -#if __FINITE_MATH_ONLY__ -#error "some routines in ggml.c require non-finite math arithmetics -- pass -fno-finite-math-only to the compiler to fix" -#error "ref: https://github.com/ggml-org/llama.cpp/pull/7154#issuecomment-2143844461" +#if defined(__ARM_FEATURE_SVE) + ggml_arm_arch_features.has_sve = 1; + ggml_arm_arch_features.sve_cnt = 16; +#else + ggml_arm_arch_features.has_sve = 0; + ggml_arm_arch_features.sve_cnt = 0; #endif -#if defined(__ARM_NEON) && defined(__aarch64__) - -// adapted from arm limited optimized routine -// the maximum error is 1.45358 plus 0.5 ulps -// numbers above 88.38 will flush to infinity -// numbers beneath -103.97 will flush to zero -inline static float32x4_t ggml_v_expf(float32x4_t x) { - const float32x4_t r = vdupq_n_f32(0x1.8p23f); - const float32x4_t z = vfmaq_f32(r, x, vdupq_n_f32(0x1.715476p+0f)); - const float32x4_t n = vsubq_f32(z, r); - const float32x4_t b = vfmsq_f32(vfmsq_f32(x, n, vdupq_n_f32(0x1.62e4p-1f)), n, - vdupq_n_f32(0x1.7f7d1cp-20f)); - const uint32x4_t e = vshlq_n_u32(vreinterpretq_u32_f32(z), 23); - const float32x4_t k = vreinterpretq_f32_u32(vaddq_u32(e, vreinterpretq_u32_f32(vdupq_n_f32(1)))); - const uint32x4_t c = vcagtq_f32(n, vdupq_n_f32(126)); - const float32x4_t u = vmulq_f32(b, b); - const float32x4_t j = vfmaq_f32( - vmulq_f32(vdupq_n_f32(0x1.ffffecp-1f), b), - vfmaq_f32(vfmaq_f32(vdupq_n_f32(0x1.fffdb6p-2f), vdupq_n_f32(0x1.555e66p-3f), b), - vfmaq_f32(vdupq_n_f32(0x1.573e2ep-5f), vdupq_n_f32(0x1.0e4020p-7f), b), u), u); - if (!vpaddd_u64(vreinterpretq_u64_u32(c))) - return vfmaq_f32(k, j, k); - const uint32x4_t d = vandq_u32(vclezq_f32(n), vdupq_n_u32(0x82000000)); - const float32x4_t s1 = vreinterpretq_f32_u32(vaddq_u32(d, vdupq_n_u32(0x7f000000))); - const float32x4_t s2 = vreinterpretq_f32_u32(vsubq_u32(e, d)); - return vbslq_f32(vcagtq_f32(n, vdupq_n_f32(192)), vmulq_f32(s1, s1), - vbslq_f32(c, vmulq_f32(vfmaq_f32(s2, s2, j), s1), vfmaq_f32(k, k, j))); -} - -// computes silu x/(1+exp(-x)) in single precision vector -inline static float32x4_t ggml_v_silu(float32x4_t x) { - const float32x4_t one = vdupq_n_f32(1.0f); - const float32x4_t zero = vdupq_n_f32(0.0f); - const float32x4_t neg_x = vsubq_f32(zero, x); - const float32x4_t exp_neg_x = ggml_v_expf(neg_x); - const float32x4_t one_plus_exp_neg_x = vaddq_f32(one, exp_neg_x); - return vdivq_f32(x, one_plus_exp_neg_x); +#if defined(__ARM_FEATURE_SME) || defined(__ARM_FEATURE_SME2) + ggml_arm_arch_features.has_sme = 1; +#else + ggml_arm_arch_features.has_sme = 0; +#endif +#endif } +#endif -#elif defined(__AVX512F__) && defined(__AVX512DQ__) - -// adapted from arm limited optimized routine -// the maximum error is 1.45358 plus 0.5 ulps -// numbers above 88.38 will flush to infinity -// numbers beneath -103.97 will flush to zero -inline static __m512 ggml_v_expf(__m512 x) { - const __m512 r = _mm512_set1_ps(0x1.8p23f); - const __m512 z = _mm512_fmadd_ps(x, _mm512_set1_ps(0x1.715476p+0f), r); - const __m512 n = _mm512_sub_ps(z, r); - const __m512 b = - _mm512_fnmadd_ps(n, _mm512_set1_ps(0x1.7f7d1cp-20f), - _mm512_fnmadd_ps(n, _mm512_set1_ps(0x1.62e4p-1f), x)); - const __mmask16 d = - _mm512_cmp_ps_mask(_mm512_abs_ps(n), _mm512_set1_ps(192), _CMP_GT_OQ); - const __m512 u = _mm512_mul_ps(b, b); - const __m512 j = _mm512_fmadd_ps( - _mm512_fmadd_ps(_mm512_fmadd_ps(_mm512_set1_ps(0x1.0e4020p-7f), b, - _mm512_set1_ps(0x1.573e2ep-5f)), - u, - _mm512_fmadd_ps(_mm512_set1_ps(0x1.555e66p-3f), b, - _mm512_set1_ps(0x1.fffdb6p-2f))), - u, - _mm512_fmadd_ps(_mm512_set1_ps(0x1.ffffecp-1f), b, _mm512_set1_ps(1.0F))); - const __m512 res = _mm512_scalef_ps(j, n); - if (_mm512_kortestz(d, d)) - return res; - const __m512 zero = _mm512_setzero_ps(); - const __m512 alt = _mm512_mask_blend_ps( - _mm512_cmp_ps_mask(n, zero, _CMP_LE_OQ), _mm512_set1_ps(INFINITY), zero); - return _mm512_mask_blend_ps(d, res, alt); -} +struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value) { + GGML_ASSERT(!ggml_get_no_alloc(ctx)); -// computes silu x/(1+exp(-x)) in single precision vector -inline static __m512 ggml_v_silu(__m512 x) { - const __m512 one = _mm512_set1_ps(1); - const __m512 zero = _mm512_setzero_ps(); - const __m512 neg_x = _mm512_sub_ps(zero, x); - const __m512 exp_neg_x = ggml_v_expf(neg_x); - const __m512 one_plus_exp_neg_x = _mm512_add_ps(one, exp_neg_x); - return _mm512_div_ps(x, one_plus_exp_neg_x); -} + struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, 1); -#elif defined(__AVX2__) && defined(__FMA__) - -// adapted from arm limited optimized routine -// the maximum error is 1.45358 plus 0.5 ulps -// numbers above 88.38 will flush to infinity -// numbers beneath -103.97 will flush to zero -inline static __m256 ggml_v_expf(__m256 x) { - const __m256 r = _mm256_set1_ps(0x1.8p23f); - const __m256 z = _mm256_fmadd_ps(x, _mm256_set1_ps(0x1.715476p+0f), r); - const __m256 n = _mm256_sub_ps(z, r); - const __m256 b = _mm256_fnmadd_ps(n, _mm256_set1_ps(0x1.7f7d1cp-20f), - _mm256_fnmadd_ps(n, _mm256_set1_ps(0x1.62e4p-1f), x)); - const __m256i e = _mm256_slli_epi32(_mm256_castps_si256(z), 23); - const __m256 k = _mm256_castsi256_ps( - _mm256_add_epi32(e, _mm256_castps_si256(_mm256_set1_ps(1)))); - const __m256i c = _mm256_castps_si256( - _mm256_cmp_ps(_mm256_andnot_ps(_mm256_set1_ps(-0.f), n), - _mm256_set1_ps(126), _CMP_GT_OQ)); - const __m256 u = _mm256_mul_ps(b, b); - const __m256 j = _mm256_fmadd_ps(_mm256_fmadd_ps(_mm256_fmadd_ps(_mm256_set1_ps(0x1.0e4020p-7f), b, - _mm256_set1_ps(0x1.573e2ep-5f)), u, - _mm256_fmadd_ps(_mm256_set1_ps(0x1.555e66p-3f), b, - _mm256_set1_ps(0x1.fffdb6p-2f))), - u, _mm256_mul_ps(_mm256_set1_ps(0x1.ffffecp-1f), b)); - if (!_mm256_movemask_ps(_mm256_castsi256_ps(c))) - return _mm256_fmadd_ps(j, k, k); - const __m256i g = _mm256_and_si256( - _mm256_castps_si256(_mm256_cmp_ps(n, _mm256_setzero_ps(), _CMP_LE_OQ)), - _mm256_set1_epi32(0x82000000u)); - const __m256 s1 = - _mm256_castsi256_ps(_mm256_add_epi32(g, _mm256_set1_epi32(0x7f000000u))); - const __m256 s2 = _mm256_castsi256_ps(_mm256_sub_epi32(e, g)); - const __m256i d = _mm256_castps_si256( - _mm256_cmp_ps(_mm256_andnot_ps(_mm256_set1_ps(-0.f), n), - _mm256_set1_ps(192), _CMP_GT_OQ)); - return _mm256_or_ps( - _mm256_and_ps(_mm256_castsi256_ps(d), _mm256_mul_ps(s1, s1)), - _mm256_andnot_ps( - _mm256_castsi256_ps(d), - _mm256_or_ps( - _mm256_and_ps(_mm256_castsi256_ps(c), - _mm256_mul_ps(_mm256_fmadd_ps(s2, j, s2), s1)), - _mm256_andnot_ps(_mm256_castsi256_ps(c), _mm256_fmadd_ps(k, j, k))))); -} + ggml_set_i32(result, value); -// computes silu x/(1+exp(-x)) in single precision vector -inline static __m256 ggml_v_silu(__m256 x) { - const __m256 one = _mm256_set1_ps(1); - const __m256 zero = _mm256_setzero_ps(); - const __m256 neg_x = _mm256_sub_ps(zero, x); - const __m256 exp_neg_x = ggml_v_expf(neg_x); - const __m256 one_plus_exp_neg_x = _mm256_add_ps(one, exp_neg_x); - return _mm256_div_ps(x, one_plus_exp_neg_x); + return result; } -#elif defined(__SSE2__) // __AVX2__ / __ARM_NEON +struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value) { + GGML_ASSERT(!ggml_get_no_alloc(ctx)); -#if defined(__FMA__) -#define MADD128(x, y, z) _mm_fmadd_ps(x, y, z) -#define NMADD128(x, y, z) _mm_fnmadd_ps(x, y, z) -#else -#define MADD128(x, y, z) _mm_add_ps(_mm_mul_ps(x, y), z) -#define NMADD128(x, y, z) _mm_sub_ps(z, _mm_mul_ps(x, y)) -#endif + struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); -// adapted from arm limited optimized routine -// the maximum error is 1.45358 plus 0.5 ulps -// numbers above 88.38 will flush to infinity -// numbers beneath -103.97 will flush to zero -inline static __m128 ggml_v_expf(__m128 x) { - const __m128 r = _mm_set1_ps(0x1.8p23f); - const __m128 z = MADD128(x, _mm_set1_ps(0x1.715476p+0f), r); - const __m128 n = _mm_sub_ps(z, r); - const __m128 b = - NMADD128(n, _mm_set1_ps(0x1.7f7d1cp-20f), NMADD128(n, _mm_set1_ps(0x1.62e4p-1f), x)); - const __m128i e = _mm_slli_epi32(_mm_castps_si128(z), 23); - const __m128 k = _mm_castsi128_ps(_mm_add_epi32(e, _mm_castps_si128(_mm_set1_ps(1)))); - const __m128i c = - _mm_castps_si128(_mm_cmpgt_ps(_mm_andnot_ps(_mm_set1_ps(-0.f), n), _mm_set1_ps(126))); - const __m128 u = _mm_mul_ps(b, b); - const __m128 j = - MADD128(MADD128(MADD128(_mm_set1_ps(0x1.0e4020p-7f), b, _mm_set1_ps(0x1.573e2ep-5f)), u, - MADD128(_mm_set1_ps(0x1.555e66p-3f), b, _mm_set1_ps(0x1.fffdb6p-2f))), - u, _mm_mul_ps(_mm_set1_ps(0x1.ffffecp-1f), b)); - if (!_mm_movemask_epi8(c)) - return MADD128(j, k, k); - const __m128i g = _mm_and_si128(_mm_castps_si128(_mm_cmple_ps(n, _mm_setzero_ps())), - _mm_set1_epi32(0x82000000u)); - const __m128 s1 = _mm_castsi128_ps(_mm_add_epi32(g, _mm_set1_epi32(0x7f000000u))); - const __m128 s2 = _mm_castsi128_ps(_mm_sub_epi32(e, g)); - const __m128i d = - _mm_castps_si128(_mm_cmpgt_ps(_mm_andnot_ps(_mm_set1_ps(-0.f), n), _mm_set1_ps(192))); - return _mm_or_ps( - _mm_and_ps(_mm_castsi128_ps(d), _mm_mul_ps(s1, s1)), - _mm_andnot_ps(_mm_castsi128_ps(d), - _mm_or_ps(_mm_and_ps(_mm_castsi128_ps(c), _mm_mul_ps(MADD128(s2, j, s2), s1)), - _mm_andnot_ps(_mm_castsi128_ps(c), MADD128(k, j, k))))); -} + ggml_set_f32(result, value); -// computes silu x/(1+exp(-x)) in single precision vector -inline static __m128 ggml_v_silu(__m128 x) { - const __m128 one = _mm_set1_ps(1); - const __m128 zero = _mm_setzero_ps(); - const __m128 neg_x = _mm_sub_ps(zero, x); - const __m128 exp_neg_x = ggml_v_expf(neg_x); - const __m128 one_plus_exp_neg_x = _mm_add_ps(one, exp_neg_x); - return _mm_div_ps(x, one_plus_exp_neg_x); + return result; } -#endif // __ARM_NEON / __AVX2__ / __SSE2__ - -static void ggml_vec_silu_f32(const int n, float * y, const float * x) { - int i = 0; -#if defined(__AVX512F__) && defined(__AVX512DQ__) - for (; i + 15 < n; i += 16) { - _mm512_storeu_ps(y + i, ggml_v_silu(_mm512_loadu_ps(x + i))); - } -#elif defined(__AVX2__) && defined(__FMA__) - for (; i + 7 < n; i += 8) { - _mm256_storeu_ps(y + i, ggml_v_silu(_mm256_loadu_ps(x + i))); - } -#elif defined(__SSE2__) - for (; i + 3 < n; i += 4) { - _mm_storeu_ps(y + i, ggml_v_silu(_mm_loadu_ps(x + i))); - } -#elif defined(__ARM_NEON) && defined(__aarch64__) - for (; i + 3 < n; i += 4) { - vst1q_f32(y + i, ggml_v_silu(vld1q_f32(x + i))); - } -#endif - for (; i < n; ++i) { - y[i] = ggml_silu_f32(x[i]); - } -} +struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value) { + const int n = ggml_nrows(tensor); + const int nc = tensor->ne[0]; + const size_t n1 = tensor->nb[1]; -inline static void ggml_vec_silu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { - for (int i = 0; i < n; ++i) { - y[i] = ggml_silu_f16(x[i]); - } -} + char * const data = tensor->data; -static ggml_float ggml_vec_soft_max_f32(const int n, float * y, const float * x, float max) { - int i = 0; - ggml_float sum = 0; -#if defined(__AVX512F__) && defined(__AVX512DQ__) - for (; i + 15 < n; i += 16) { - __m512 val = ggml_v_expf(_mm512_sub_ps(_mm512_loadu_ps(x + i), - _mm512_set1_ps(max))); - _mm512_storeu_ps(y + i, val); - sum += (ggml_float)_mm512_reduce_add_ps(val); - } -#elif defined(__AVX2__) && defined(__FMA__) - for (; i + 7 < n; i += 8) { - __m256 val = ggml_v_expf(_mm256_sub_ps(_mm256_loadu_ps(x + i), - _mm256_set1_ps(max))); - _mm256_storeu_ps(y + i, val); - __m128 val2 = _mm_add_ps(_mm256_extractf128_ps(val, 1), - _mm256_castps256_ps128(val)); - val2 = _mm_add_ps(val2, _mm_movehl_ps(val2, val2)); - val2 = _mm_add_ss(val2, _mm_movehdup_ps(val2)); - sum += (ggml_float)_mm_cvtss_f32(val2); - } -#elif defined(__SSE2__) - for (; i + 3 < n; i += 4) { - __m128 val = ggml_v_expf(_mm_sub_ps(_mm_loadu_ps(x + i), - _mm_set1_ps(max))); - _mm_storeu_ps(y + i, val); -#if defined(__AVX__) || defined(__AVX2__) || defined(__AVX512F__) - val = _mm_add_ps(val, _mm_movehl_ps(val, val)); - val = _mm_add_ss(val, _mm_movehdup_ps(val)); -#else - __m128 tmp = _mm_shuffle_ps(val, val, _MM_SHUFFLE(2, 3, 0, 1)); - val = _mm_add_ps(val, tmp); - tmp = _mm_movehl_ps(tmp, val); - val = _mm_add_ss(val, tmp); -#endif - sum += (ggml_float)_mm_cvtss_f32(val); - } -#elif defined(__ARM_NEON) && defined(__aarch64__) - for (; i + 3 < n; i += 4) { - float32x4_t val = ggml_v_expf(vsubq_f32(vld1q_f32(x + i), - vdupq_n_f32(max))); - vst1q_f32(y + i, val); - sum += (ggml_float)vaddvq_f32(val); - } -#endif - for (; i < n; ++i) { - float val = expf(x[i] - max); - sum += (ggml_float)val; - y[i] = val; - } - return sum; -} - -static ggml_float ggml_vec_log_soft_max_f32(const int n, float * y, const float * x, float max) { - // log(soft_max) = log(soft_max_i / soft_max_sum) = log(soft_max_i) - log(soft_max_sum) = (logit_i - max) - log(soft_max_i) - - int i = 0; - ggml_float sum = 0; - for (; i < n; ++i) { - float val = x[i] - max; - y[i] = val; - sum += (ggml_float)expf(val); - } - return sum = (ggml_float)logf(sum); -} - -inline static float ggml_silu_backward_f32(float x, float dy) { - const float s = 1.0f/(1.0f + expf(-x)); - return dy*s*(1.0f + x*(1.0f - s)); -} - -inline static ggml_fp16_t ggml_silu_backward_f16(ggml_fp16_t x, ggml_fp16_t dy) { - const float v = GGML_FP16_TO_FP32(x); - const float s = 1.0f/(1.0f + expf(-v)); - return GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(dy)*s*(1.0f + v*(1.0f - s))); -} - -inline static void ggml_vec_silu_backward_f32(const int n, float * dx, const float * x, const float * dy) { - for (int i = 0; i < n; ++i) { - dx[i] = ggml_silu_backward_f32(x[i], dy[i]); - } -} - -inline static void ggml_vec_silu_backward_f16(const int n, ggml_fp16_t * dx, const ggml_fp16_t * x, const ggml_fp16_t * dy) { - for (int i = 0; i < n; ++i) { - dx[i] = ggml_silu_backward_f16(x[i], dy[i]); - } -} - -inline static void ggml_vec_sum_f32(const int n, float * s, const float * x) { -#ifndef GGML_USE_ACCELERATE - ggml_float sum = 0.0; - for (int i = 0; i < n; ++i) { - sum += (ggml_float)x[i]; - } - *s = sum; -#else - vDSP_sve(x, 1, s, n); -#endif -} - -inline static void ggml_vec_sum_f32_ggf(const int n, ggml_float * s, const float * x) { - ggml_float sum = 0.0; - for (int i = 0; i < n; ++i) { - sum += (ggml_float)x[i]; - } - *s = sum; -} - -inline static void ggml_vec_sum_f16_ggf(const int n, float * s, const ggml_fp16_t * x) { - float sum = 0.0f; - for (int i = 0; i < n; ++i) { - sum += GGML_FP16_TO_FP32(x[i]); - } - *s = sum; -} - -inline static void ggml_vec_sum_bf16_ggf(const int n, float * s, const ggml_bf16_t * x) { - float sum = 0.0f; - for (int i = 0; i < n; ++i) { - sum += GGML_BF16_TO_FP32(x[i]); - } - *s = sum; -} - -inline static void ggml_vec_max_f32(const int n, float * s, const float * x) { -#ifndef GGML_USE_ACCELERATE - float max = -INFINITY; - for (int i = 0; i < n; ++i) { - max = MAX(max, x[i]); - } - *s = max; -#else - vDSP_maxv(x, 1, s, n); -#endif -} - -inline static void ggml_vec_norm_inv_f32(const int n, float * s, const float * x) { - ggml_vec_norm_f32(n, s, x); - *s = 1.f/(*s); -} - -inline static void ggml_vec_argmax_f32(const int n, int * s, const float * x) { - float max = -INFINITY; - int idx = 0; - for (int i = 0; i < n; ++i) { - max = MAX(max, x[i]); - if (max == x[i]) { idx = i; } - } - *s = idx; -} - -// Helpers for polling loops -#if defined(__aarch64__) && ( defined(__clang__) || defined(__GNUC__) ) -static inline void ggml_thread_cpu_relax(void) { - __asm__ volatile("yield" ::: "memory"); -} -#elif defined(__x86_64__) -static inline void ggml_thread_cpu_relax(void) { - _mm_pause(); -} -#else -static inline void ggml_thread_cpu_relax(void) {;} -#endif - -// -// NUMA support -// - -#define GGML_NUMA_MAX_NODES 8 -#define GGML_NUMA_MAX_CPUS 512 - -struct ggml_numa_node { - uint32_t cpus[GGML_NUMA_MAX_CPUS]; // hardware threads on this node - uint32_t n_cpus; -}; - -struct ggml_numa_nodes { - enum ggml_numa_strategy numa_strategy; - struct ggml_numa_node nodes[GGML_NUMA_MAX_NODES]; - uint32_t n_nodes; - uint32_t total_cpus; // hardware threads on system - uint32_t current_node; // node on which main process is execting -#if defined(__gnu_linux__) - cpu_set_t cpuset; // cpuset from numactl -#else - uint32_t cpuset; // no NUMA support outside of Linux at this time. Use a portable datatype -#endif -}; - -// -// ggml state -// - -struct ggml_state { - struct ggml_numa_nodes numa; -}; - -static struct ggml_state g_state = {0}; - -void ggml_barrier(struct ggml_threadpool * tp) { - int n_threads = atomic_load_explicit(&tp->n_threads_cur, memory_order_relaxed); - if (n_threads == 1) { - return; - } - -#ifdef GGML_USE_OPENMP - #pragma omp barrier -#else - int n_passed = atomic_load_explicit(&tp->n_barrier_passed, memory_order_relaxed); - - // enter barrier (full seq-cst fence) - int n_barrier = atomic_fetch_add_explicit(&tp->n_barrier, 1, memory_order_seq_cst); - - if (n_barrier == (n_threads - 1)) { - // last thread - atomic_store_explicit(&tp->n_barrier, 0, memory_order_relaxed); - - // exit barrier (fill seq-cst fence) - atomic_fetch_add_explicit(&tp->n_barrier_passed, 1, memory_order_seq_cst); - return; - } - - // wait for other threads - while (atomic_load_explicit(&tp->n_barrier_passed, memory_order_relaxed) == n_passed) { - ggml_thread_cpu_relax(); - } - - // exit barrier (full seq-cst fence) - // TSAN doesn't support standalone fence yet, we use a dummy read-modify-write instead - #ifdef GGML_TSAN_ENABLED - atomic_fetch_add_explicit(&tp->n_barrier_passed, 0, memory_order_seq_cst); - #else - atomic_thread_fence(memory_order_seq_cst); - #endif -#endif -} - -#if defined(__gnu_linux__) -static cpu_set_t ggml_get_numa_affinity(void) { - cpu_set_t cpuset; - pthread_t thread; - thread = pthread_self(); - CPU_ZERO(&cpuset); - pthread_getaffinity_np(thread, sizeof(cpu_set_t), &cpuset); - return cpuset; -} -#else -static uint32_t ggml_get_numa_affinity(void) { - return 0; // no NUMA support -} -#endif - -void ggml_numa_init(enum ggml_numa_strategy numa_flag) { - if (g_state.numa.n_nodes > 0) { - fprintf(stderr, "ggml_numa_init: NUMA already initialized\n"); - - return; - } - -#if defined(__gnu_linux__) - struct stat st; - char path[256]; - int rv; - - // set numa scheme - g_state.numa.numa_strategy = numa_flag; - - GGML_PRINT_DEBUG("numa strategy %u\n",g_state.numa.numa_strategy); - - g_state.numa.cpuset = ggml_get_numa_affinity(); - - // enumerate nodes - while (g_state.numa.n_nodes < GGML_NUMA_MAX_NODES) { - rv = snprintf(path, sizeof(path), "/sys/devices/system/node/node%u", g_state.numa.n_nodes); - GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); - if (stat(path, &st) != 0) { break; } - ++g_state.numa.n_nodes; - } - - // enumerate CPUs - while (g_state.numa.total_cpus < GGML_NUMA_MAX_CPUS) { - rv = snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%u", g_state.numa.total_cpus); - GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); - if (stat(path, &st) != 0) { break; } - ++g_state.numa.total_cpus; - } - - GGML_PRINT_DEBUG("found %u numa nodes, %u CPUs\n", g_state.numa.n_nodes, g_state.numa.total_cpus); - - // figure out which node we're on - uint current_cpu; - int getcpu_ret = 0; -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 33) || defined(__COSMOPOLITAN__) - getcpu_ret = getcpu(¤t_cpu, &g_state.numa.current_node); -#else - // old glibc doesn't have a wrapper for this call. Fall back on direct syscall -# if !defined(SYS_getcpu) && defined(SYS_get_cpu) -# define SYS_getcpu SYS_get_cpu // some older glibc versions use this name -# endif - getcpu_ret = syscall(SYS_getcpu, ¤t_cpu, &g_state.numa.current_node); -#endif - - if (g_state.numa.n_nodes < 1 || g_state.numa.total_cpus < 1 || getcpu_ret != 0) { - g_state.numa.n_nodes = 0; - return; - } - - GGML_PRINT_DEBUG("found our process on numa node %u, CPU %u\n", g_state.numa.current_node, current_cpu); - - for (uint32_t n = 0; n < g_state.numa.n_nodes; ++n) { - struct ggml_numa_node * node = &g_state.numa.nodes[n]; - GGML_PRINT_DEBUG("CPUs on node %u:", n); - node->n_cpus = 0; - for (uint32_t c = 0; c < g_state.numa.total_cpus; ++c) { - rv = snprintf(path, sizeof(path), "/sys/devices/system/node/node%u/cpu%u", n, c); - GGML_ASSERT(rv > 0 && (unsigned)rv < sizeof(path)); - if (stat(path, &st) == 0) { - node->cpus[node->n_cpus++] = c; - GGML_PRINT_DEBUG(" %u", c); - } - } - GGML_PRINT_DEBUG("\n"); - } - - if (ggml_is_numa()) { - FILE *fptr = fopen("/proc/sys/kernel/numa_balancing", "r"); - if (fptr != NULL) { - char buf[42]; - if (fgets(buf, sizeof(buf), fptr) && strncmp(buf, "0\n", sizeof(buf)) != 0) { - GGML_LOG_WARN("/proc/sys/kernel/numa_balancing is enabled, this has been observed to impair performance\n"); - } - fclose(fptr); - } - } -#else - UNUSED(numa_flag); - // TODO -#endif -} - -bool ggml_is_numa(void) { - return g_state.numa.n_nodes > 1; -} - -#if defined(__ARM_ARCH) - -#if defined(__linux__) && defined(__aarch64__) -#include -#elif defined(__APPLE__) -#include -#endif - -#if !defined(HWCAP2_I8MM) -#define HWCAP2_I8MM (1 << 13) -#endif - -#if !defined(HWCAP2_SME) -#define HWCAP2_SME (1 << 23) -#endif - -static void ggml_init_arm_arch_features(void) { -#if defined(__linux__) && defined(__aarch64__) - uint32_t hwcap = getauxval(AT_HWCAP); - uint32_t hwcap2 = getauxval(AT_HWCAP2); - - ggml_arm_arch_features.has_neon = !!(hwcap & HWCAP_ASIMD); - ggml_arm_arch_features.has_dotprod = !!(hwcap & HWCAP_ASIMDDP); - ggml_arm_arch_features.has_i8mm = !!(hwcap2 & HWCAP2_I8MM); - ggml_arm_arch_features.has_sve = !!(hwcap & HWCAP_SVE); - ggml_arm_arch_features.has_sme = !!(hwcap2 & HWCAP2_SME); - -#if defined(__ARM_FEATURE_SVE) - ggml_arm_arch_features.sve_cnt = PR_SVE_VL_LEN_MASK & prctl(PR_SVE_GET_VL); -#endif -#elif defined(__APPLE__) - int oldp = 0; - size_t size = sizeof(oldp); - if (sysctlbyname("hw.optional.AdvSIMD", &oldp, &size, NULL, 0) != 0) { - oldp = 0; - } - ggml_arm_arch_features.has_neon = oldp; - - if (sysctlbyname("hw.optional.arm.FEAT_DotProd", &oldp, &size, NULL, 0) != 0) { - oldp = 0; - } - ggml_arm_arch_features.has_dotprod = oldp; - - if (sysctlbyname("hw.optional.arm.FEAT_I8MM", &oldp, &size, NULL, 0) != 0) { - oldp = 0; - } - ggml_arm_arch_features.has_i8mm = oldp; - - if (sysctlbyname("hw.optional.arm.FEAT_SME", &oldp, &size, NULL, 0) != 0) { - oldp = 0; - } - ggml_arm_arch_features.has_sme = oldp; - - ggml_arm_arch_features.has_sve = 0; - ggml_arm_arch_features.sve_cnt = 0; -#else -// Run-time CPU feature detection not implemented for this platform, fallback to compile time -#if defined(__ARM_NEON) - ggml_arm_arch_features.has_neon = 1; -#else - ggml_arm_arch_features.has_neon = 0; -#endif - -#if defined(__ARM_FEATURE_MATMUL_INT8) - ggml_arm_arch_features.has_i8mm = 1; -#else - ggml_arm_arch_features.has_i8mm = 0; -#endif - -#if defined(__ARM_FEATURE_SVE) - ggml_arm_arch_features.has_sve = 1; - ggml_arm_arch_features.sve_cnt = 16; -#else - ggml_arm_arch_features.has_sve = 0; - ggml_arm_arch_features.sve_cnt = 0; -#endif - -#if defined(__ARM_FEATURE_SME) || defined(__ARM_FEATURE_SME2) - ggml_arm_arch_features.has_sme = 1; -#else - ggml_arm_arch_features.has_sme = 0; -#endif -#endif -} -#endif - -struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value) { - GGML_ASSERT(!ggml_get_no_alloc(ctx)); - - struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, 1); - - ggml_set_i32(result, value); - - return result; -} - -struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value) { - GGML_ASSERT(!ggml_get_no_alloc(ctx)); - - struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); - - ggml_set_f32(result, value); - - return result; -} - -struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value) { - const int n = ggml_nrows(tensor); - const int nc = tensor->ne[0]; - const size_t n1 = tensor->nb[1]; - - char * const data = tensor->data; - - switch (tensor->type) { - case GGML_TYPE_I8: - { - assert(tensor->nb[0] == sizeof(int8_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_I16: - { - assert(tensor->nb[0] == sizeof(int16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_I32: - { - assert(tensor->nb[0] == sizeof(int32_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_F16: - { - assert(tensor->nb[0] == sizeof(ggml_fp16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), GGML_FP32_TO_FP16(value)); - } - } break; - case GGML_TYPE_BF16: - { - assert(tensor->nb[0] == sizeof(ggml_fp16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_bf16(nc, (ggml_bf16_t *)(data + i*n1), GGML_FP32_TO_BF16(value)); - } - } break; - case GGML_TYPE_F32: - { - assert(tensor->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { - ggml_vec_set_f32(nc, (float *)(data + i*n1), value); - } - } break; - default: - { - GGML_ABORT("fatal error"); - } - } - - return tensor; -} - -struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value) { - const int n = ggml_nrows(tensor); - const int nc = tensor->ne[0]; - const size_t n1 = tensor->nb[1]; - - char * const data = tensor->data; - - switch (tensor->type) { - case GGML_TYPE_I8: - { - assert(tensor->nb[0] == sizeof(int8_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_I16: - { - assert(tensor->nb[0] == sizeof(int16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_I32: - { - assert(tensor->nb[0] == sizeof(int32_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); - } - } break; - case GGML_TYPE_F16: - { - assert(tensor->nb[0] == sizeof(ggml_fp16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), GGML_FP32_TO_FP16(value)); - } - } break; - case GGML_TYPE_BF16: - { - assert(tensor->nb[0] == sizeof(ggml_bf16_t)); - for (int i = 0; i < n; i++) { - ggml_vec_set_bf16(nc, (ggml_bf16_t *)(data + i*n1), GGML_FP32_TO_BF16(value)); - } - } break; - case GGML_TYPE_F32: - { - assert(tensor->nb[0] == sizeof(float)); - for (int i = 0; i < n; i++) { - ggml_vec_set_f32(nc, (float *)(data + i*n1), value); - } - } break; - default: - { - GGML_ABORT("fatal error"); - } - } - - return tensor; -} - -int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i) { - if (!ggml_is_contiguous(tensor)) { - int64_t id[4] = { 0, 0, 0, 0 }; - ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); - return ggml_get_i32_nd(tensor, id[0], id[1], id[2], id[3]); - } - switch (tensor->type) { - case GGML_TYPE_I8: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); - return ((int8_t *)(tensor->data))[i]; - } - case GGML_TYPE_I16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); - return ((int16_t *)(tensor->data))[i]; - } - case GGML_TYPE_I32: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); - return ((int32_t *)(tensor->data))[i]; - } - case GGML_TYPE_F16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); - } - case GGML_TYPE_BF16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); - return GGML_BF16_TO_FP32(((ggml_bf16_t *)(tensor->data))[i]); - } - case GGML_TYPE_F32: - { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); - return ((float *)(tensor->data))[i]; - } - default: - { - GGML_ABORT("fatal error"); - } - } -} - -void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value) { - if (!ggml_is_contiguous(tensor)) { - int64_t id[4] = { 0, 0, 0, 0 }; - ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); - ggml_set_i32_nd(tensor, id[0], id[1], id[2], id[3], value); - return; - } - switch (tensor->type) { - case GGML_TYPE_I8: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); - ((int8_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_I16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); - ((int16_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_I32: - { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); - ((int32_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_F16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); - } break; - case GGML_TYPE_BF16: - { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); - ((ggml_bf16_t *)(tensor->data))[i] = GGML_FP32_TO_BF16(value); - } break; - case GGML_TYPE_F32: - { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); - ((float *)(tensor->data))[i] = value; - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -int32_t ggml_get_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3) { - void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; - switch (tensor->type) { - case GGML_TYPE_I8: - return ((int8_t *) data)[0]; - case GGML_TYPE_I16: - return ((int16_t *) data)[0]; - case GGML_TYPE_I32: - return ((int32_t *) data)[0]; - case GGML_TYPE_F16: - return GGML_FP16_TO_FP32(((ggml_fp16_t *) data)[0]); - case GGML_TYPE_BF16: - return GGML_BF16_TO_FP32(((ggml_bf16_t *) data)[0]); - case GGML_TYPE_F32: - return ((float *) data)[0]; - default: - GGML_ABORT("fatal error"); - } -} - -void ggml_set_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, int32_t value) { - void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; - switch (tensor->type) { - case GGML_TYPE_I8: - { - ((int8_t *)(data))[0] = value; - } break; - case GGML_TYPE_I16: - { - ((int16_t *)(data))[0] = value; - } break; - case GGML_TYPE_I32: - { - ((int32_t *)(data))[0] = value; - } break; - case GGML_TYPE_F16: - { - ((ggml_fp16_t *)(data))[0] = GGML_FP32_TO_FP16(value); - } break; - case GGML_TYPE_BF16: - { - ((ggml_bf16_t *)(data))[0] = GGML_FP32_TO_BF16(value); - } break; - case GGML_TYPE_F32: - { - ((float *)(data))[0] = value; - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i) { - if (!ggml_is_contiguous(tensor)) { - int64_t id[4] = { 0, 0, 0, 0 }; - ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); - return ggml_get_f32_nd(tensor, id[0], id[1], id[2], id[3]); - } - switch (tensor->type) { - case GGML_TYPE_I8: - { - return ((int8_t *)(tensor->data))[i]; - } - case GGML_TYPE_I16: - { - return ((int16_t *)(tensor->data))[i]; - } - case GGML_TYPE_I32: - { - return ((int32_t *)(tensor->data))[i]; - } - case GGML_TYPE_F16: - { - return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); - } - case GGML_TYPE_BF16: - { - return GGML_BF16_TO_FP32(((ggml_bf16_t *)(tensor->data))[i]); - } - case GGML_TYPE_F32: - { - return ((float *)(tensor->data))[i]; - } - default: - { - GGML_ABORT("fatal error"); - } - } -} - -void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value) { - if (!ggml_is_contiguous(tensor)) { - int64_t id[4] = { 0, 0, 0, 0 }; - ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); - ggml_set_f32_nd(tensor, id[0], id[1], id[2], id[3], value); - return; - } - switch (tensor->type) { - case GGML_TYPE_I8: - { - ((int8_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_I16: - { - ((int16_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_I32: - { - ((int32_t *)(tensor->data))[i] = value; - } break; - case GGML_TYPE_F16: - { - ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); - } break; - case GGML_TYPE_BF16: - { - ((ggml_bf16_t *)(tensor->data))[i] = GGML_FP32_TO_BF16(value); - } break; - case GGML_TYPE_F32: - { - ((float *)(tensor->data))[i] = value; - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -float ggml_get_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3) { - void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; - switch (tensor->type) { - case GGML_TYPE_I8: - return ((int8_t *) data)[0]; - case GGML_TYPE_I16: - return ((int16_t *) data)[0]; - case GGML_TYPE_I32: - return ((int32_t *) data)[0]; - case GGML_TYPE_F16: - return GGML_FP16_TO_FP32(((ggml_fp16_t *) data)[0]); - case GGML_TYPE_BF16: - return GGML_BF16_TO_FP32(((ggml_bf16_t *) data)[0]); - case GGML_TYPE_F32: - return ((float *) data)[0]; - default: - GGML_ABORT("fatal error"); - } -} - -void ggml_set_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, float value) { - void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; - switch (tensor->type) { - case GGML_TYPE_I8: - { - ((int8_t *)(data))[0] = value; - } break; - case GGML_TYPE_I16: - { - ((int16_t *)(data))[0] = value; - } break; - case GGML_TYPE_I32: - { - ((int32_t *)(data))[0] = value; - } break; - case GGML_TYPE_F16: - { - ((ggml_fp16_t *)(data))[0] = GGML_FP32_TO_FP16(value); - } break; - case GGML_TYPE_BF16: - { - ((ggml_bf16_t *)(data))[0] = GGML_FP32_TO_BF16(value); - } break; - case GGML_TYPE_F32: - { - ((float *)(data))[0] = value; - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -//////////////////////////////////////////////////////////////////////////////// - -// ggml_compute_forward_dup - -static void ggml_compute_forward_dup_same_cont( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); - GGML_ASSERT(src0->type == dst->type); - - const size_t nb0 = ggml_type_size(src0->type); - - const int ith = params->ith; // thread index - const int nth = params->nth; // number of threads - - // parallelize by blocks - const int nk = ggml_nelements(src0)/ggml_blck_size(src0->type); - const int dr = (nk + nth - 1) / nth; - const int k0 = dr * ith; - const int k1 = MIN(k0 + dr, nk); - - if (k0 < k1) { - memcpy( - ((char *) dst->data + k0*nb0), - ((char *) src0->data + k0*nb0), - (k1 - k0) * nb0); - } -} - -static void ggml_compute_forward_dup_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - - GGML_TENSOR_UNARY_OP_LOCALS - - const int ith = params->ith; // thread index - const int nth = params->nth; // number of threads - - // parallelize by rows - const int nr = ne01; - // number of rows per thread - const int dr = (nr + nth - 1) / nth; - // row range for this thread - const int ir0 = dr * ith; - const int ir1 = MIN(ir0 + dr, nr); - - if (src0->type == dst->type && - ne00 == ne0 && - nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { - // copy by rows - const size_t rs = ne00*nb00; - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ir0; i01 < ir1; i01++) { - memcpy( - ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), - ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), - rs); - } - } - } - return; - } - - // TODO: add more special-case implementations for tensor shapes/strides that can benefit from memcpy - - if (ggml_is_contiguous(dst)) { - if (nb00 == sizeof(ggml_fp16_t)) { - if (dst->type == GGML_TYPE_F16) { - size_t id = 0; - const size_t rs = ne00 * nb00; - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; - memcpy(dst_ptr + id, src0_ptr, rs); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - float * dst_ptr = (float *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - for (int i00 = 0; i00 < ne00; i00++) { - dst_ptr[id] = GGML_FP16_TO_FP32(src0_ptr[i00]); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { - ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; - float * src0_f32 = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; - - size_t id = 0; - size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - - for (int i00 = 0; i00 < ne00; i00++) { - src0_f32[i00] = GGML_FP16_TO_FP32(src0_ptr[i00]); - } - - quantize_row_q(src0_f32, dst_ptr + id, ne00); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } else { - //printf("%s: this is not optimal - fix me\n", __func__); - - if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - float * dst_ptr = (float *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = GGML_FP16_TO_FP32(*src0_ptr); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F16) { - size_t id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = *src0_ptr; - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } - return; - } - - // dst counters - int64_t i10 = 0; - int64_t i11 = 0; - int64_t i12 = 0; - int64_t i13 = 0; - - if (dst->type == GGML_TYPE_F16) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - memcpy(dst_ptr, src0_ptr, sizeof(ggml_fp16_t)); - - if (++i10 == ne00) { - i10 = 0; - if (++i11 == ne01) { - i11 = 0; - if (++i12 == ne02) { - i12 = 0; - if (++i13 == ne03) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else if (dst->type == GGML_TYPE_F32) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - *(float *) dst_ptr = GGML_FP16_TO_FP32(*(const ggml_fp16_t *) src0_ptr); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } -} - -static void ggml_compute_forward_dup_bf16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - - GGML_TENSOR_UNARY_OP_LOCALS - - const int ith = params->ith; // thread index - const int nth = params->nth; // number of threads - - // parallelize by rows - const int nr = ne01; - // number of rows per thread - const int dr = (nr + nth - 1) / nth; - // row range for this thread - const int ir0 = dr * ith; - const int ir1 = MIN(ir0 + dr, nr); - - if (src0->type == dst->type && - ne00 == ne0 && - nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { - // copy by rows - const size_t rs = ne00*nb00; - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ir0; i01 < ir1; i01++) { - memcpy( - ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), - ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), - rs); - } - } - } - return; - } - - // TODO: add more special-case implementations for tensor shapes/strides that can benefit from memcpy - - if (ggml_is_contiguous(dst)) { - if (nb00 == sizeof(ggml_bf16_t)) { - if (dst->type == GGML_TYPE_BF16) { - size_t id = 0; - const size_t rs = ne00 * nb00; - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; - memcpy(dst_ptr + id, src0_ptr, rs); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F16) { - size_t id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - for (int i00 = 0; i00 < ne00; i00++) { - dst_ptr[id] = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(src0_ptr[i00])); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - float * dst_ptr = (float *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - for (int i00 = 0; i00 < ne00; i00++) { - dst_ptr[id] = GGML_BF16_TO_FP32(src0_ptr[i00]); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { - ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; - float * src0_f32 = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; - - size_t id = 0; - size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - - for (int i00 = 0; i00 < ne00; i00++) { - src0_f32[i00] = GGML_BF16_TO_FP32(src0_ptr[i00]); - } - - quantize_row_q(src0_f32, dst_ptr + id, ne00); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } else { - //printf("%s: this is not optimal - fix me\n", __func__); - - if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - float * dst_ptr = (float *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = GGML_BF16_TO_FP32(*src0_ptr); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_BF16) { - size_t id = 0; - ggml_bf16_t * dst_ptr = (ggml_bf16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = *src0_ptr; - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F16) { - size_t id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(*src0_ptr)); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } - return; - } - - // dst counters - int64_t i10 = 0; - int64_t i11 = 0; - int64_t i12 = 0; - int64_t i13 = 0; - - if (dst->type == GGML_TYPE_BF16) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - memcpy(dst_ptr, src0_ptr, sizeof(ggml_bf16_t)); - - if (++i10 == ne00) { - i10 = 0; - if (++i11 == ne01) { - i11 = 0; - if (++i12 == ne02) { - i12 = 0; - if (++i13 == ne03) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else if (dst->type == GGML_TYPE_F16) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - *(ggml_fp16_t *) dst_ptr = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(*(const ggml_bf16_t *) src0_ptr)); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else if (dst->type == GGML_TYPE_F32) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - *(float *) dst_ptr = GGML_BF16_TO_FP32(*(const ggml_bf16_t *) src0_ptr); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } -} - -static void ggml_compute_forward_dup_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - - GGML_TENSOR_UNARY_OP_LOCALS - - const int ith = params->ith; // thread index - const int nth = params->nth; // number of threads - - // parallelize by rows - const int nr = ne01; - // number of rows per thread - const int dr = (nr + nth - 1) / nth; - // row range for this thread - const int ir0 = dr * ith; - const int ir1 = MIN(ir0 + dr, nr); - - if (src0->type == dst->type && - ne00 == ne0 && - nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { - // copy by rows - const size_t rs = ne00*nb00; - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ir0; i01 < ir1; i01++) { - memcpy( - ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), - ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), - rs); - } - } - } - return; - } - - if (ggml_is_contiguous(dst)) { - // TODO: simplify - if (nb00 == sizeof(float)) { - if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - const size_t rs = ne00 * nb00; - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; - memcpy(dst_ptr + id, src0_ptr, rs); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { - ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; - - size_t id = 0; - size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); - char * dst_ptr = (char *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - const float * src0_ptr = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - quantize_row_q(src0_ptr, dst_ptr + id, ne00); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } else { - //printf("%s: this is not optimal - fix me\n", __func__); - - if (dst->type == GGML_TYPE_F32) { - size_t id = 0; - float * dst_ptr = (float *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = *src0_ptr; - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_F16) { - size_t id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = GGML_FP32_TO_FP16(*src0_ptr); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else if (dst->type == GGML_TYPE_BF16) { - size_t id = 0; - ggml_bf16_t * dst_ptr = (ggml_bf16_t *) dst->data; - - for (int i03 = 0; i03 < ne03; i03++) { - for (int i02 = 0; i02 < ne02; i02++) { - id += ne00 * ir0; - for (int i01 = ir0; i01 < ir1; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - - dst_ptr[id] = GGML_FP32_TO_BF16(*src0_ptr); - id++; - } - } - id += ne00 * (ne01 - ir1); - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } - } - - return; - } - - // dst counters - - int64_t i10 = 0; - int64_t i11 = 0; - int64_t i12 = 0; - int64_t i13 = 0; - - if (dst->type == GGML_TYPE_F32) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - memcpy(dst_ptr, src0_ptr, sizeof(float)); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else if (dst->type == GGML_TYPE_F16) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - *(ggml_fp16_t *) dst_ptr = GGML_FP32_TO_FP16(*(const float *) src0_ptr); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else if (dst->type == GGML_TYPE_BF16) { - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - i10 += ne00 * ir0; - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - *(ggml_bf16_t *) dst_ptr = GGML_FP32_TO_BF16(*(const float *) src0_ptr); - - if (++i10 == ne0) { - i10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - i10 += ne00 * (ne01 - ir1); - while (i10 >= ne0) { - i10 -= ne0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - } else { - GGML_ABORT("fatal error"); // TODO: implement - } -} - -// A simplified version of ggml_compute_forward_dup that doesn't do float upcasting, and just plain old memcpy. -static void ggml_compute_forward_dup_bytes( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - GGML_ASSERT(src0->type == dst->type); - - GGML_TENSOR_UNARY_OP_LOCALS; - - if (ggml_is_contiguous(src0) && ggml_is_contiguous(dst)) { - ggml_compute_forward_dup_same_cont(params, dst); - return; - } - - const size_t type_size = ggml_type_size(src0->type); - - const int ith = params->ith; // thread index - const int nth = params->nth; // number of threads - - // parallelize by rows - const int nr = ne01; - // number of rows per thread - const int dr = (nr + nth - 1) / nth; - // row range for this thread - const int ir0 = dr * ith; - const int ir1 = MIN(ir0 + dr, nr); - - if (src0->type == dst->type && - ggml_are_same_shape(src0, dst) && - nb00 == type_size && nb0 == type_size) { - // copy by rows - const size_t rs = ggml_row_size(src0->type, ne00); - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ir0; i01 < ir1; i01++) { - memcpy( - ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), - ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), - rs); - } - } - } - return; - } - - if (ggml_is_contiguous(dst)) { - size_t id = 0; - char * dst_ptr = (char *) dst->data; - const size_t rs = ne00 * type_size; - - if (nb00 == type_size) { - // src0 is contigous on first dimension, copy by rows - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int64_t i01 = ir0; i01 < ir1; i01++) { - const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; - memcpy(dst_ptr + id, src0_ptr, rs); - id += rs; - } - id += rs * (ne01 - ir1); - } - } - } else { - //printf("%s: this is not optimal - fix me\n", __func__); - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - id += rs * ir0; - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - const char * src0_ptr = (char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03; - memcpy(dst_ptr + id, src0_ptr, type_size); - - id += type_size; - } - } - id += rs * (ne01 - ir1); - } - } - } - - return; - } - - // dst counters - int64_t k10 = 0; - int64_t i11 = 0; - int64_t i12 = 0; - int64_t i13 = 0; - - // number of blocks in a row - const int64_t nk00 = ne00 / ggml_blck_size(src0->type); - const int64_t nk0 = ne0 / ggml_blck_size(dst->type); - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - k10 += nk00 * ir0; - while (k10 >= nk0) { - k10 -= nk0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - for (int64_t i01 = ir0; i01 < ir1; i01++) { - for (int64_t k00 = 0; k00 < nk00; k00++) { - const char * src0_ptr = ((char *) src0->data + k00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - char * dst_ptr = ((char *) dst->data + k10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); - - memcpy(dst_ptr, src0_ptr, type_size); - - if (++k10 == nk0) { - k10 = 0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } - k10 += nk00 * (ne01 - ir1); - while (k10 >= nk0) { - k10 -= nk0; - if (++i11 == ne1) { - i11 = 0; - if (++i12 == ne2) { - i12 = 0; - if (++i13 == ne3) { - i13 = 0; - } - } - } - } - } - } -} - -static void ggml_compute_forward_dup_q( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const enum ggml_type type = src0->type; - ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; - - size_t qk = ggml_blck_size(type); - const int64_t nr = ggml_nelements(src1) / qk; - - // destination must be contiguous in the first dimension - GGML_ASSERT(nb10 == ggml_type_size(dst->type)); - // must either have first dimension large enough to hold a row, or fully contiguous - GGML_ASSERT((ne10 % qk) == 0 || ggml_is_contiguous(dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int64_t ir = ir0; ir < ir1; ++ir) { - - uint32_t i = ir * qk; - - const int64_t i03 = i/(ne00 * ne01 * ne02); - const int64_t i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); - const int64_t i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; - const int64_t i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; - const int64_t x_offset = (i00/qk)*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; - - const int64_t i13 = i/(ne10 * ne11 * ne12); - const int64_t i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); - const int64_t i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; - const int64_t i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; - const int64_t dst_offset = i10*nb10 + i11*nb11 + i12*nb12 + i13*nb13; - - dequantize_row_q( - (const void *) ((char *) src0->data + x_offset), - (float *) ((char *) dst->data + dst_offset), qk); - } -} - -static void ggml_compute_forward_dup( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (src0->type == dst->type) { - ggml_compute_forward_dup_bytes(params, dst); - return; - } - - switch (src0->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_dup_f16(params, dst); - } break; - case GGML_TYPE_BF16: - { - ggml_compute_forward_dup_bf16(params, dst); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_dup_f32(params, dst); - } break; - default: - { - if (ggml_is_quantized(src0->type) && dst->type == GGML_TYPE_F32) { - ggml_compute_forward_dup_q(params, dst); - break; - } - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_add - -static void ggml_compute_forward_add_q_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - const enum ggml_type type = src0->type; - const enum ggml_type dtype = dst->type; - ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; - ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dtype)->from_float; - - // we don't support permuted src0 or src1 - GGML_ASSERT(nb00 == ggml_type_size(type)); - GGML_ASSERT(nb10 == sizeof(float)); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - GGML_ASSERT(ggml_is_quantized(src0->type)); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - float * wdata = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 indices - const int i03 = ir/(ne02*ne01); - const int i02 = (ir - i03*ne02*ne01)/ne01; - const int i01 = (ir - i03*ne02*ne01 - i02*ne01); - - // src1 and dst are same shape as src0 => same indices - const int i13 = i03; - const int i12 = i02; - const int i11 = i01; - - const int i3 = i03; - const int i2 = i02; - const int i1 = i01; - - void * src0_row = (void *) ((char *) src0->data + (i01*nb01 + i02*nb02 + i03*nb03)); - float * src1_row = (float *)((char *) src1->data + (i11*nb11 + i12*nb12 + i13*nb13)); - void * dst_row = (void *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); - - assert(ne00 % 32 == 0); - - // unquantize row from src0 to temp buffer - dequantize_row_q(src0_row, wdata, ne00); - // add src1 - ggml_vec_acc_f32(ne00, wdata, src1_row); - // quantize row to dst - if (quantize_row_q != NULL) { - quantize_row_q(wdata, dst_row, ne00); - } else { - memcpy(dst_row, wdata, ne0*nb0); - } - } -} - -static void ggml_compute_forward_add( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - { - ggml_compute_forward_add_non_quantized(params, dst); - } break; - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - { - ggml_compute_forward_add_q_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_add1 - -static void ggml_compute_forward_add1_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT( nb0 == sizeof(float)); - GGML_ASSERT(nb00 == sizeof(float)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - -#ifdef GGML_USE_ACCELERATE - UNUSED(ggml_vec_add1_f32); - - vDSP_vadd( - (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01), 1, - (float *) ((char *) src1->data), 0, - (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ), 1, - ne0); -#else - ggml_vec_add1_f32(ne0, - (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ), - (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01), - *(float *) src1->data); -#endif - } -} - -static void ggml_compute_forward_add1_f16_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - // scalar to add - const float v = *(float *) src1->data; - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT(dst->type == GGML_TYPE_F16); - - GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); - ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); - for (int i = 0; i < ne0; i++) { - dst_ptr[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(src0_ptr[i]) + v); - } - } -} - -static void ggml_compute_forward_add1_f16_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - // scalar to add - const float v = GGML_FP16_TO_FP32(*(ggml_fp16_t *) src1->data); - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F16); - GGML_ASSERT(dst->type == GGML_TYPE_F16); - - GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); - ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); - for (int i = 0; i < ne0; i++) { - dst_ptr[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(src0_ptr[i]) + v); - } - } -} - -static void ggml_compute_forward_add1_q_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - // scalar to add - const float v = *(float *) src1->data; - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - const enum ggml_type type = src0->type; - ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; - ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(type)->from_float; - - // we don't support permuted src0 - GGML_ASSERT(nb00 == ggml_type_size(type)); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - GGML_ASSERT(ggml_is_quantized(src0->type)); - GGML_ASSERT(dst->type == src0->type); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - float * wdata = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32) * ith; - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - - void * src0_row = (void *) ((char *) src0->data + (i1*nb01 + i2*nb02 + i3*nb03)); - void * dst_row = (void *) ((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb0 )); - - assert(ne0 % 32 == 0); - - // unquantize row from src0 to temp buffer - dequantize_row_q(src0_row, wdata, ne0); - // add src1 - ggml_vec_acc1_f32(ne0, wdata, v); - // quantize row to dst - quantize_row_q(wdata, dst_row, ne0); - } -} - -static void ggml_compute_forward_add1_bf16_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - // scalar to add - const float v = *(float *) src1->data; - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(src0->type == GGML_TYPE_BF16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT(dst->type == GGML_TYPE_BF16); - - GGML_ASSERT( nb0 == sizeof(ggml_bf16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_bf16_t)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - - ggml_bf16_t * dst_ptr = (ggml_bf16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); - ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); - for (int i = 0; i < ne0; i++) { - dst_ptr[i] = GGML_FP32_TO_BF16(GGML_BF16_TO_FP32(src0_ptr[i]) + v); - } - } -} - -static void ggml_compute_forward_add1_bf16_bf16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); - - // scalar to add - const float v = GGML_BF16_TO_FP32(*(ggml_bf16_t *) src1->data); - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src0); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(src0->type == GGML_TYPE_BF16); - GGML_ASSERT(src1->type == GGML_TYPE_BF16); - GGML_ASSERT(dst->type == GGML_TYPE_BF16); - - GGML_ASSERT( nb0 == sizeof(ggml_bf16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_bf16_t)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are same shape => same indices - const int i3 = ir/(ne2*ne1); - const int i2 = (ir - i3*ne2*ne1)/ne1; - const int i1 = (ir - i3*ne2*ne1 - i2*ne1); - - ggml_bf16_t * dst_ptr = (ggml_bf16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); - ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); - for (int i = 0; i < ne0; i++) { - dst_ptr[i] = GGML_FP32_TO_BF16(GGML_BF16_TO_FP32(src0_ptr[i]) + v); - } - } -} - -static void ggml_compute_forward_add1( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_add1_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - if (src1->type == GGML_TYPE_F16) { - ggml_compute_forward_add1_f16_f16(params, dst); - } - else if (src1->type == GGML_TYPE_F32) { - ggml_compute_forward_add1_f16_f32(params, dst); - } - else { - GGML_ABORT("fatal error"); - } - } break; - case GGML_TYPE_BF16: - { - if (src1->type == GGML_TYPE_BF16) { - ggml_compute_forward_add1_bf16_bf16(params, dst); - } - else if (src1->type == GGML_TYPE_F32) { - ggml_compute_forward_add1_bf16_f32(params, dst); - } - else { - GGML_ABORT("fatal error"); - } - } break; - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q8_1: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - { - ggml_compute_forward_add1_q_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_acc - -static void ggml_compute_forward_acc_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); - - // view src0 and dst with these strides and data offset inbytes during acc - // nb0 is implicitly element_size because src0 and dst are contiguous - size_t nb1 = ((int32_t *) dst->op_params)[0]; - size_t nb2 = ((int32_t *) dst->op_params)[1]; - size_t nb3 = ((int32_t *) dst->op_params)[2]; - size_t offset = ((int32_t *) dst->op_params)[3]; - bool inplace = (bool) ((int32_t *) dst->op_params)[4]; - - if (!inplace) { - if (params->ith == 0) { - // memcpy needs to be synchronized across threads to avoid race conditions. - // => do it in INIT phase - memcpy( - ((char *) dst->data), - ((char *) src0->data), - ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - } - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src1); - const int nc = src1->ne[0]; - - GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) - GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) - - // src0 and dst as viewed during acc - const size_t nb0 = ggml_element_size(src0); - - const size_t nb00 = nb0; - const size_t nb01 = nb1; - const size_t nb02 = nb2; - const size_t nb03 = nb3; - - GGML_ASSERT(offset + (ne10 == 0 ? 0 : ne10-1)*nb0 + (ne11 == 0 ? 0 : ne11-1)*nb1 + (ne12 == 0 ? 0 : ne12-1)*nb2 + (ne13 == 0 ? 0 : ne13-1)*nb3 < ggml_nbytes(dst)); - GGML_ASSERT(offset + (ne10 == 0 ? 0 : ne10-1)*nb00 + (ne11 == 0 ? 0 : ne11-1)*nb01 + (ne12 == 0 ? 0 : ne12-1)*nb02 + (ne13 == 0 ? 0 : ne13-1)*nb03 < ggml_nbytes(src0)); - - GGML_ASSERT(nb10 == sizeof(float)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are viewed with shape of src1 and offset - // => same indices - const int i3 = ir/(ne12*ne11); - const int i2 = (ir - i3*ne12*ne11)/ne11; - const int i1 = (ir - i3*ne12*ne11 - i2*ne11); - -#ifdef GGML_USE_ACCELERATE - vDSP_vadd( - (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + offset), 1, - (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11), 1, - (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), 1, nc); -#else - ggml_vec_add_f32(nc, - (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), - (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + offset), - (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); -#endif - } -} - -static void ggml_compute_forward_acc( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_acc_f32(params, dst); - } break; - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q8_1: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_sum - -static void ggml_compute_forward_sum_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_scalar(dst)); - assert(src0->nb[0] == sizeof(float)); - - GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) - GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) - - ggml_float sum = 0; - ggml_float row_sum = 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_f32_ggf(ne00, - &row_sum, - (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); - sum += row_sum; - } - } - } - ((float *) dst->data)[0] = sum; -} - -static void ggml_compute_forward_sum_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_scalar(dst)); - - assert(src0->nb[0] == sizeof(ggml_fp16_t)); - - GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) - GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) - - float sum = 0; - float row_sum = 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_f16_ggf(ne00, - &row_sum, - (ggml_fp16_t *) ((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03)); - sum += row_sum; - } - } - } - ((ggml_fp16_t *) dst->data)[0] = GGML_FP32_TO_FP16(sum); -} - -static void ggml_compute_forward_sum_bf16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_scalar(dst)); - - assert(src0->nb[0] == sizeof(ggml_bf16_t)); - - GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) - GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) - - float sum = 0; - float row_sum = 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_bf16_ggf(ne00, - &row_sum, - (ggml_bf16_t *) ((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03)); - sum += row_sum; - } - } - } - ((ggml_bf16_t *) dst->data)[0] = GGML_FP32_TO_BF16(sum); -} - -static void ggml_compute_forward_sum( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_sum_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_sum_f16(params, dst); - } break; - case GGML_TYPE_BF16: - { - ggml_compute_forward_sum_bf16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_sum_rows - -static void ggml_compute_forward_sum_rows_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - GGML_ASSERT(dst->nb[0] == sizeof(float)); - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(ne0 == 1); - GGML_ASSERT(ne1 == ne01); - GGML_ASSERT(ne2 == ne02); - GGML_ASSERT(ne3 == ne03); - - for (int64_t i3 = 0; i3 < ne03; i3++) { - for (int64_t i2 = 0; i2 < ne02; i2++) { - for (int64_t i1 = 0; i1 < ne01; i1++) { - float * src_row = (float *) ((char *) src0->data + i1*nb01 + i2*nb02 + i3*nb03); - float * dst_row = (float *) ((char *) dst->data + i1*nb1 + i2*nb2 + i3*nb3); - float row_sum = 0; - ggml_vec_sum_f32(ne00, &row_sum, src_row); - dst_row[0] = row_sum; - } - } - } -} - -static void ggml_compute_forward_sum_rows( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_sum_rows_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_mean - -static void ggml_compute_forward_mean_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(src0->nb[0] == sizeof(float)); - - GGML_TENSOR_UNARY_OP_LOCALS - - assert(ne0 == 1); - assert(ne1 == ne01); - assert(ne2 == ne02); - assert(ne3 == ne03); - - UNUSED(ne0); - UNUSED(ne1); - UNUSED(ne2); - UNUSED(ne3); - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_f32(ne00, - (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), - (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); - - *(float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3) /= (float) ne00; - } - } - } -} - -static void ggml_compute_forward_mean( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_mean_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_argmax - -static void ggml_compute_forward_argmax_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(src0->nb[0] == sizeof(float)); - assert(dst->nb[0] == sizeof(float)); - - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - - const size_t nb01 = src0->nb[1]; - const size_t nb0 = dst->nb[0]; - - for (int64_t i1 = 0; i1 < ne01; i1++) { - float * src = (float *) ((char *) src0->data + i1*nb01); - int32_t * dst_ = (int32_t *) ((char *) dst->data + i1*nb0); - int v = 0; - ggml_vec_argmax_f32(ne00, &v, src); - dst_[0] = v; - } -} - -static void ggml_compute_forward_argmax( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_argmax_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_count_equal - -static void ggml_compute_forward_count_equal_i32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS; - - GGML_ASSERT(src0->type == GGML_TYPE_I32); - GGML_ASSERT(src1->type == GGML_TYPE_I32); - GGML_ASSERT(ggml_are_same_shape(src0, src1)); - GGML_ASSERT(ggml_is_scalar(dst)); - GGML_ASSERT(dst->type == GGML_TYPE_I64); - - const int64_t nr = ggml_nrows(src0); - - const int ith = params->ith; - const int nth = params->nth; - - int64_t * sums = (int64_t *) params->wdata; - int64_t sum_thread = 0; - - // rows per thread - const int64_t dr = (nr + nth - 1)/nth; - - // row range for this thread - const int64_t ir0 = dr*ith; - const int64_t ir1 = MIN(ir0 + dr, nr); - - for (int64_t ir = ir0; ir < ir1; ++ir) { - const int64_t i03 = ir / (ne02*ne01); - const int64_t i02 = (ir - i03*ne03) / ne01; - const int64_t i01 = ir - i03*ne03 - i02*ne02; - - const char * data0 = (const char *) src0->data + i03*nb03 + i02*nb02 + i01*nb01; - const char * data1 = (const char *) src1->data + i03*nb13 + i02*nb12 + i01*nb11; - - for (int64_t i00 = 0; i00 < ne00; ++i00) { - const int32_t val0 = *((const int32_t *) (data0 + i00*nb00)); - const int32_t val1 = *((const int32_t *) (data1 + i00*nb10)); - - sum_thread += val0 == val1; - } - } - if (ith != 0) { - sums[ith] = sum_thread; - } - ggml_barrier(params->threadpool); - - if (ith != 0) { - return; - } - - for (int ith_other = 1; ith_other < nth; ++ith_other) { - sum_thread += sums[ith_other]; - } - *((int64_t *) dst->data) = sum_thread; -} - -static void ggml_compute_forward_count_equal( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_I32: - { - ggml_compute_forward_count_equal_i32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_repeat - -static void ggml_compute_forward_repeat_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(ggml_can_repeat(src0, dst)); - - GGML_TENSOR_UNARY_OP_LOCALS - - // guaranteed to be an integer due to the check in ggml_can_repeat - const int nr0 = (int)(ne0/ne00); - const int nr1 = (int)(ne1/ne01); - const int nr2 = (int)(ne2/ne02); - const int nr3 = (int)(ne3/ne03); - - // TODO: support for transposed / permuted tensors - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb00 == sizeof(float)); - - // TODO: maybe this is not optimal? - for (int i3 = 0; i3 < nr3; i3++) { - for (int k3 = 0; k3 < ne03; k3++) { - for (int i2 = 0; i2 < nr2; i2++) { - for (int k2 = 0; k2 < ne02; k2++) { - for (int i1 = 0; i1 < nr1; i1++) { - for (int k1 = 0; k1 < ne01; k1++) { - for (int i0 = 0; i0 < nr0; i0++) { - ggml_vec_cpy_f32(ne00, - (float *) ((char *) dst->data + (i3*ne03 + k3)*nb3 + (i2*ne02 + k2)*nb2 + (i1*ne01 + k1)*nb1 + (i0*ne00)*nb0), - (float *) ((char *) src0->data + ( k3)*nb03 + ( k2)*nb02 + ( k1)*nb01)); - } - } - } - } - } - } - } -} - -static void ggml_compute_forward_repeat_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(ggml_can_repeat(src0, dst)); - - GGML_TENSOR_UNARY_OP_LOCALS - - // guaranteed to be an integer due to the check in ggml_can_repeat - const int nr0 = (int)(ne0/ne00); - const int nr1 = (int)(ne1/ne01); - const int nr2 = (int)(ne2/ne02); - const int nr3 = (int)(ne3/ne03); - - // TODO: support for transposed / permuted tensors - GGML_ASSERT(nb0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - - // TODO: maybe this is not optimal? - for (int i3 = 0; i3 < nr3; i3++) { - for (int k3 = 0; k3 < ne03; k3++) { - for (int i2 = 0; i2 < nr2; i2++) { - for (int k2 = 0; k2 < ne02; k2++) { - for (int i1 = 0; i1 < nr1; i1++) { - for (int k1 = 0; k1 < ne01; k1++) { - for (int i0 = 0; i0 < nr0; i0++) { - ggml_fp16_t * y = (ggml_fp16_t *) ((char *) dst->data + (i3*ne03 + k3)*nb3 + (i2*ne02 + k2)*nb2 + (i1*ne01 + k1)*nb1 + (i0*ne00)*nb0); - ggml_fp16_t * x = (ggml_fp16_t *) ((char *) src0->data + ( k3)*nb03 + ( k2)*nb02 + ( k1)*nb01); - // ggml_vec_cpy_f16(ne00, y, x) - for (int i = 0; i < ne00; ++i) { - y[i] = x[i]; - } - } - } - } - } - } - } - } -} - -static void ggml_compute_forward_repeat( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_I16: - { - ggml_compute_forward_repeat_f16(params, dst); - } break; - case GGML_TYPE_F32: - case GGML_TYPE_I32: - { - ggml_compute_forward_repeat_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_repeat_back - -static void ggml_compute_forward_repeat_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(ggml_can_repeat(dst, src0)); - - GGML_TENSOR_UNARY_OP_LOCALS - - // guaranteed to be an integer due to the check in ggml_can_repeat - const int nr0 = (int)(ne00/ne0); - const int nr1 = (int)(ne01/ne1); - const int nr2 = (int)(ne02/ne2); - const int nr3 = (int)(ne03/ne3); - - // TODO: support for transposed / permuted tensors - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb00 == sizeof(float)); - - if (ggml_is_contiguous(dst)) { - ggml_vec_set_f32(ne0*ne1*ne2*ne3, dst->data, 0); - } else { - for (int k3 = 0; k3 < ne3; k3++) { - for (int k2 = 0; k2 < ne2; k2++) { - for (int k1 = 0; k1 < ne1; k1++) { - ggml_vec_set_f32(ne0, - (float *) ((char *) dst->data + k1*nb1 + k2*nb2 + k3*nb3), - 0); - } - } - } - } - - // TODO: maybe this is not optimal? - for (int i3 = 0; i3 < nr3; i3++) { - for (int k3 = 0; k3 < ne3; k3++) { - for (int i2 = 0; i2 < nr2; i2++) { - for (int k2 = 0; k2 < ne2; k2++) { - for (int i1 = 0; i1 < nr1; i1++) { - for (int k1 = 0; k1 < ne1; k1++) { - for (int i0 = 0; i0 < nr0; i0++) { - ggml_vec_acc_f32(ne0, - (float *) ((char *) dst->data + ( k3)*nb3 + ( k2)*nb2 + ( k1)*nb1), - (float *) ((char *) src0->data + (i3*ne3 + k3)*nb03 + (i2*ne2 + k2)*nb02 + (i1*ne1 + k1)*nb01 + (i0*ne0)*nb00)); - } - } - } - } - } - } - } -} - -static void ggml_compute_forward_repeat_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_repeat_back_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_concat - -static void ggml_compute_forward_concat_any( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - const size_t len = ggml_type_size(src0->type); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int32_t dim = ggml_get_op_params_i32(dst, 0); - - GGML_ASSERT(dim >= 0 && dim < 4); - - int64_t o[4] = {0, 0, 0, 0}; - o[dim] = src0->ne[dim]; - - const char * x; - - // TODO: smarter multi-theading - for (int i3 = 0; i3 < ne3; i3++) { - for (int i2 = ith; i2 < ne2; i2 += nth) { - for (int i1 = 0; i1 < ne1; i1++) { - for (int i0 = 0; i0 < ne0; i0++) { - if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { - x = (const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03; - } else { - x = (const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13; - } - - char * y = (char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3; - - memcpy(y, x, len); - } - } - } - } -} - -static void ggml_compute_forward_concat_i8( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_type_size(src0->type) == sizeof(int8_t)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int32_t dim = ggml_get_op_params_i32(dst, 0); - - GGML_ASSERT(dim >= 0 && dim < 4); - - int64_t o[4] = {0, 0, 0, 0}; - o[dim] = src0->ne[dim]; - - const int8_t * x; - - // TODO: smarter multi-theading - for (int i3 = 0; i3 < ne3; i3++) { - for (int i2 = ith; i2 < ne2; i2 += nth) { - for (int i1 = 0; i1 < ne1; i1++) { - for (int i0 = 0; i0 < ne0; i0++) { - if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { - x = (const int8_t *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); - } else { - x = (const int8_t *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); - } - - int8_t * y = (int8_t *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); - - *y = *x; - } - } - } - } -} - -static void ggml_compute_forward_concat_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_type_size(src0->type) == sizeof(ggml_fp16_t)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int32_t dim = ggml_get_op_params_i32(dst, 0); - - GGML_ASSERT(dim >= 0 && dim < 4); - - int64_t o[4] = {0, 0, 0, 0}; - o[dim] = src0->ne[dim]; - - const ggml_fp16_t * x; - - // TODO: smarter multi-theading - for (int i3 = 0; i3 < ne3; i3++) { - for (int i2 = ith; i2 < ne2; i2 += nth) { - for (int i1 = 0; i1 < ne1; i1++) { - for (int i0 = 0; i0 < ne0; i0++) { - if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { - x = (const ggml_fp16_t *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); - } else { - x = (const ggml_fp16_t *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); - } - - ggml_fp16_t * y = (ggml_fp16_t *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); - - *y = *x; - } - } - } - } -} - -static void ggml_compute_forward_concat_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_type_size(src0->type) == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int32_t dim = ggml_get_op_params_i32(dst, 0); - - GGML_ASSERT(dim >= 0 && dim < 4); - - int64_t o[4] = {0, 0, 0, 0}; - o[dim] = src0->ne[dim]; - - const float * x; - - // TODO: smarter multi-theading - for (int i3 = 0; i3 < ne3; i3++) { - for (int i2 = ith; i2 < ne2; i2 += nth) { - for (int i1 = 0; i1 < ne1; i1++) { - for (int i0 = 0; i0 < ne0; i0++) { - if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { - x = (const float *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); - } else { - x = (const float *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); - } - - float * y = (float *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); - - *y = *x; - } - } - } - } -} - -static void ggml_compute_forward_concat( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_I16: - { - ggml_compute_forward_concat_f16(params, dst); - } break; - case GGML_TYPE_I8: - { - ggml_compute_forward_concat_i8(params, dst); - } break; - case GGML_TYPE_F32: - case GGML_TYPE_I32: - { - ggml_compute_forward_concat_f32(params, dst); - } break; - default: - { - ggml_compute_forward_concat_any(params, dst); - } - } -} - -// ggml_compute_forward_gelu - -static void ggml_compute_forward_gelu_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_gelu_f32(nc, - (float *) ((char *) dst->data + i1*( dst->nb[1])), - (float *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - UNUSED(x); - assert(!isnan(x)); - assert(!isinf(x)); - } -#endif - } -} - -static void ggml_compute_forward_gelu_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_gelu_f16(nc, - (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), - (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - const float v = GGML_FP16_TO_FP32(x); - UNUSED(v); - assert(!isnan(v)); - assert(!isinf(v)); - } -#endif - } -} - -static void ggml_compute_forward_gelu( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_gelu_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_gelu_f16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_gelu_quick - -static void ggml_compute_forward_gelu_quick_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_gelu_quick_f32(nc, - (float *) ((char *) dst->data + i1*( dst->nb[1])), - (float *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - UNUSED(x); - assert(!isnan(x)); - assert(!isinf(x)); - } -#endif - } -} - -static void ggml_compute_forward_gelu_quick_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_gelu_quick_f16(nc, - (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), - (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - const float v = GGML_FP16_TO_FP32(x); - UNUSED(v); - assert(!isnan(v)); - assert(!isinf(v)); - } -#endif - } -} - -static void ggml_compute_forward_gelu_quick( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_gelu_quick_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_gelu_quick_f16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_silu - -static void ggml_compute_forward_silu_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_silu_f32(nc, - (float *) ((char *) dst->data + i1*( dst->nb[1])), - (float *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const float x = ((float *) ((char *) dst->data + i1*(dst->nb[1])))[k]; - UNUSED(x); - assert(!isnan(x)); - assert(!isinf(x)); - } -#endif - } -} - -static void ggml_compute_forward_silu_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_silu_f16(nc, - (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), - (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*(dst->nb[1])))[k]; - const float v = GGML_FP16_TO_FP32(x); - UNUSED(v); - assert(!isnan(v)); - assert(!isinf(v)); - } -#endif - } -} - -static void ggml_compute_forward_silu( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_silu_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_silu_f16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} -// ggml_compute_forward_leaky_relu - -static void ggml_compute_forward_leaky_relu_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - - float negative_slope; - memcpy(&negative_slope, dst->op_params, sizeof(float)); - - assert(dst->nb[0] == sizeof(float)); - assert(src0->nb[0] == sizeof(float)); - - for (int i = 0; i < n; i++) { - ggml_vec_leaky_relu_f32(nc, - (float *) ((char *) dst->data + i*( dst->nb[1])), - (float *) ((char *) src0->data + i*(src0->nb[1])), negative_slope); - } -} - -static void ggml_compute_forward_leaky_relu_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - - float negative_slope; - memcpy(&negative_slope, dst->op_params, sizeof(float)); - - assert(dst->nb[0] == sizeof(ggml_fp16_t)); - assert(src0->nb[0] == sizeof(ggml_fp16_t)); - - for (int i = 0; i < n; i++) { - ggml_vec_leaky_relu_f16(nc, - (ggml_fp16_t *) ((char *) dst->data + i*( dst->nb[1])), - (ggml_fp16_t *) ((char *) src0->data + i*(src0->nb[1])), negative_slope); - } -} - -static void ggml_compute_forward_leaky_relu( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_leaky_relu_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_leaky_relu_f16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_silu_back - -static void ggml_compute_forward_silu_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * grad = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - assert(ggml_is_contiguous_1(grad)); - assert(ggml_is_contiguous_1(src1)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src1, dst)); - assert(ggml_are_same_shape(src1, grad)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src1->ne[0]; - const int nr = ggml_nrows(src1); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_silu_backward_f32(nc, - (float *) ((char *) dst->data + i1*( dst->nb[1])), - (float *) ((char *) src1->data + i1*(src1->nb[1])), - (float *) ((char *) grad->data + i1*(grad->nb[1]))); - -#ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - UNUSED(x); - assert(!isnan(x)); - assert(!isinf(x)); - } -#endif - } -} - -static void ggml_compute_forward_silu_back_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * grad = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - assert(ggml_is_contiguous_1(grad)); - assert(ggml_is_contiguous_1(src1)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src1, dst)); - assert(ggml_are_same_shape(src1, grad)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src1->ne[0]; - const int nr = ggml_nrows(src1); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_silu_backward_f16(nc, - (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), - (ggml_fp16_t *) ((char *) src1->data + i1*(src1->nb[1])), - (ggml_fp16_t *) ((char *) grad->data + i1*(grad->nb[1]))); - - #ifndef NDEBUG - for (int k = 0; k < nc; k++) { - const float x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; - const float v = GGML_FP16_TO_FP32(x); - UNUSED(v); - assert(!isnan(v)); - assert(!isinf(v)); - } - #endif - } -} - -static void ggml_compute_forward_silu_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_silu_back_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_silu_back_f16(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_norm - -static void ggml_compute_forward_norm_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - GGML_ASSERT(eps >= 0.0f); - - // TODO: optimize - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ith; i01 < ne01; i01 += nth) { - const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - - ggml_float sum = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - sum += (ggml_float)x[i00]; - } - - float mean = sum/ne00; - - float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); - - ggml_float sum2 = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - float v = x[i00] - mean; - y[i00] = v; - sum2 += (ggml_float)(v*v); - } - - float variance = sum2/ne00; - const float scale = 1.0f/sqrtf(variance + eps); - - ggml_vec_scale_f32(ne00, y, scale); - } - } - } -} - -static void ggml_compute_forward_norm( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_norm_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_group_rms_norm - -static void ggml_compute_forward_rms_norm_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - GGML_ASSERT(eps >= 0.0f); - - // TODO: optimize - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ith; i01 < ne01; i01 += nth) { - const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - - ggml_float sum = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - sum += (ggml_float)(x[i00] * x[i00]); - } - - const float mean = sum/ne00; - - float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); - - memcpy(y, x, ne00 * sizeof(float)); - // for (int i00 = 0; i00 < ne00; i00++) { - // y[i00] = x[i00]; - // } - - const float scale = 1.0f/sqrtf(mean + eps); - - ggml_vec_scale_f32(ne00, y, scale); - } - } - } -} - -static void ggml_compute_forward_rms_norm( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_rms_norm_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -static void ggml_compute_forward_rms_norm_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; // gradients from forward pass output - const struct ggml_tensor * src1 = dst->src[1]; // src1 from forward pass - - GGML_ASSERT(ggml_are_same_shape(src0, dst) && ggml_are_same_shape(src0, src1)); - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - GGML_ASSERT(src1->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_BINARY_OP_LOCALS - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - // TODO: optimize - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ith; i01 < ne01; i01 += nth) { - // src1 is same shape as src0 => same indices - const int64_t i11 = i01; - const int64_t i12 = i02; - const int64_t i13 = i03; - - const float * dz = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - const float * x = (float *) ((char *) src1->data + i11*nb11 + i12*nb12 + i13*nb13); - - ggml_float sum_xx = 0.0; - ggml_float sum_xdz = 0.0; - - for (int64_t i00 = 0; i00 < ne00; i00++) { - sum_xx += (ggml_float)(x[i00] * x[i00]); - sum_xdz += (ggml_float)(x[i00] * dz[i00]); - } - - //const float mean = (float)(sum_xx)/ne00; - const float mean_eps = (float)(sum_xx)/ne00 + eps; - const float sum_eps = (float)(sum_xx) + eps*ne00; - //const float mean_xdz = (float)(sum_xdz)/ne00; - // we could cache rms from forward pass to improve performance. - // to do this implement ggml_rms and compose ggml_rms_norm using ggml_rms. - //const float rms = sqrtf(mean_eps); - const float rrms = 1.0f / sqrtf(mean_eps); - //const float scale = -rrms/(ne00 * mean_eps); // -1/(n*rms**3) - - { - // z = rms_norm(x) - // - // rms_norm(src1) = - // scale( - // src1, - // div( - // 1, - // sqrt( - // add( - // scale( - // sum( - // sqr( - // src1)), - // (1.0/N)), - // eps)))); - - // postorder: - // ## op args grad - // 00 param src1 grad[#00] - // 01 const 1 - // 02 sqr (#00) grad[#02] - // 03 sum (#02) grad[#03] - // 04 const 1/N - // 05 scale (#03, #04) grad[#05] - // 06 const eps - // 07 add (#05, #06) grad[#07] - // 08 sqrt (#07) grad[#08] - // 09 div (#01,#08) grad[#09] - // 10 scale (#00,#09) grad[#10] - // - // backward pass, given grad[#10] - // #10: scale - // grad[#00] += scale(grad[#10],#09) - // grad[#09] += sum(mul(grad[#10],#00)) - // #09: div - // grad[#08] += neg(mul(grad[#09], div(#09,#08))) - // #08: sqrt - // grad[#07] += mul(grad[#08], div(0.5, #08)) - // #07: add - // grad[#05] += grad[#07] - // #05: scale - // grad[#03] += scale(grad[#05],#04) - // #03: sum - // grad[#02] += repeat(grad[#03], #02) - // #02: - // grad[#00] += scale(mul(#00, grad[#02]), 2.0) - // - // substitute and simplify: - // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, grad[#02]), 2.0) - // grad[#02] = repeat(grad[#03], #02) - // grad[#02] = repeat(scale(grad[#05],#04), #02) - // grad[#02] = repeat(scale(grad[#07],#04), #02) - // grad[#02] = repeat(scale(mul(grad[#08], div(0.5, #08)),#04), #02) - // grad[#02] = repeat(scale(mul(neg(mul(grad[#09], div(#09,#08))), div(0.5, #08)),#04), #02) - // grad[#02] = repeat(scale(mul(neg(mul(sum(mul(grad[#10],#00)), div(#09,#08))), div(0.5, #08)),#04), #02) - // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(#09,#08) * div(0.5, #08) * (1/N)), #02) - // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(div(#01,#08),#08) * div(0.5, #08) * (1/N)), #02) - // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(1,#08*#08) * div(0.5, #08) * (1/N)), #02) - // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N)), #02) - // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, grad[#02]), 2.0) - // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, repeat(-(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N)), #02)), 2.0) - // grad[#00] = scale(grad(#10), #09) + scale(scale(#00, -(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N))), 2.0) - // grad[#00] = scale(grad(#10), #09) + scale(#00, -(sum(mul(grad[#10],#00)) * div(1,#07) * div(1,#08) * (1/N))) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,#07*#08) * (-1/N)) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,#07*#08) * (-1/N)) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,mean_eps*rms) * (-1/N)) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*mean_eps)) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*(sum_xx/N+eps))) - // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*sum_xx+rms*N*eps)) - // grad[#00] = scale(dz, rrms) + scale(x, sum(mul(dz,x)) * div(-1,rms*N*mean_eps)) - // grad[#00] = scale(dz, rrms) + scale(x, sum_xdz * div(-1,rms*N*mean_eps)) - // a = b*c + d*e - // a = b*c*f/f + d*e*f/f - // a = (b*c*f + d*e*f)*(1/f) - // a = (b*c*(1/c) + d*e*(1/c))*(1/(1/c)) - // a = (b + d*e/c)*c - // b = dz, c = rrms, d = x, e = sum_xdz * div(-1,rms*N*mean_eps) - // a = (dz + x*sum_xdz * div(-1,rms*N*mean_eps)/rrms)*rrms - // a = (dz + x*sum_xdz * div(-1,rms*N*mean_eps)*rms)*rrms - // a = (dz + x*sum_xdz * div(-rms,rms*N*mean_eps))*rrms - // a = (dz + x*sum_xdz * div(-1,N*mean_eps))*rrms - // a = (dz + x*div(-sum_xdz,N*mean_eps))*rrms - // a = (dz + x*div(-mean_xdz,mean_eps))*rrms - // grad[#00] = scale(dz + scale(x, div(-mean_xdz,mean_eps)),rrms) - // grad[#00] = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) - // dx = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) - } - // dx = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) - // post-order: - // dx := x - // dx := scale(dx,-mean_xdz/mean_eps) - // dx := add(dx, dz) - // dx := scale(dx, rrms) - float * dx = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); - - // dx[i00] = (x*(-sum_xdz/sum_eps) + dz) / sqrtf(mean_eps) - ggml_vec_cpy_f32 (ne00, dx, x); - // ggml_vec_scale_f32(ne00, dx, -mean_xdz/mean_eps); - ggml_vec_scale_f32(ne00, dx, (float)(-sum_xdz)/sum_eps); - ggml_vec_acc_f32 (ne00, dx, dz); - ggml_vec_scale_f32(ne00, dx, rrms); - } - } - } -} - -static void ggml_compute_forward_rms_norm_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_rms_norm_back_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_group_norm - -static void ggml_compute_forward_group_norm_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - // TODO: optimize - - float eps; - memcpy(&eps, dst->op_params + 1, sizeof(float)); - - int n_channels = src0->ne[2]; - int n_groups = dst->op_params[0]; - int n_channels_per_group = (n_channels + n_groups - 1) / n_groups; - for (int i = ith; i < n_groups; i += nth) { - int start = i * n_channels_per_group; - int end = start + n_channels_per_group; - if (end > n_channels) { - end = n_channels; - } - int step = end - start; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - ggml_float sum = 0.0; - for (int64_t i02 = start; i02 < end; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - const float * x = (float *)((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03); - - ggml_float sumr = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - sumr += (ggml_float)x[i00]; - } - sum += sumr; - } - } - const float mean = sum / (ne00 * ne01 * step); - - ggml_float sum2 = 0.0; - for (int64_t i02 = start; i02 < end; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - const float * x = (float *)((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03); - - float * y = (float *)((char *) dst->data + i01 * nb1 + i02 * nb2 + i03 * nb3); - - ggml_float sumr = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - float v = x[i00] - mean; - y[i00] = v; - sumr += (ggml_float)(v * v); - } - sum2 += sumr; - } - } - const float variance = sum2 / (ne00 * ne01 * step); - const float scale = 1.0f / sqrtf(variance + eps); - - for (int64_t i02 = start; i02 < end; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - float * y = (float *)((char *) dst->data + i01 * nb1 + i02 * nb2 + i03 * nb3); - ggml_vec_scale_f32(ne00, y, scale); - } - } - } - } -} - -static void ggml_compute_forward_group_norm( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_group_norm_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_l2_norm - -static void ggml_compute_forward_l2_norm_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - GGML_ASSERT(eps >= 0.0f); - - // TODO: optimize - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = ith; i01 < ne01; i01 += nth) { - const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - - ggml_float sum = 0.0; - for (int64_t i00 = 0; i00 < ne00; i00++) { - sum += (ggml_float)(x[i00] * x[i00]); - } - - float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); - - memcpy(y, x, ne00 * sizeof(float)); - - const float scale = 1.0f/fmaxf(sqrtf(sum), eps); - - ggml_vec_scale_f32(ne00, y, scale); - } - } - } -} - -static void ggml_compute_forward_l2_norm( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_l2_norm_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_mul_mat - -static void ggml_compute_forward_mul_mat_one_chunk( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const enum ggml_type type, - const int64_t num_rows_per_vec_dot, - const int64_t ir0_start, - const int64_t ir0_end, - const int64_t ir1_start, - const int64_t ir1_end) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const bool src1_cont = ggml_is_contiguous(src1); - - ggml_vec_dot_t const vec_dot = type_traits_cpu[type].vec_dot; - enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; - - // broadcast factors - const int64_t r2 = ne12 / ne02; - const int64_t r3 = ne13 / ne03; - - //printf("ir0_start = %6lld, ir0_end = %6lld, ir1_start = %6lld, ir1_end = %6lld\n", ir0_start, ir0_end, ir1_start, ir1_end); - - // threads with no work simply yield (not sure if it helps) - if (ir0_start >= ir0_end || ir1_start >= ir1_end) { - return; - } - - const void * wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; - const size_t row_size = ggml_row_size(vec_dot_type, ne10); - - assert(ne12 % ne02 == 0); - assert(ne13 % ne03 == 0); - - // block-tiling attempt - const int64_t blck_0 = 16; - const int64_t blck_1 = 16; - - const size_t src1_col_stride = src1_cont || src1->type != vec_dot_type ? row_size : nb11; - - // attempt to reduce false-sharing (does not seem to make a difference) - // 16 * 2, accounting for mmla kernels - float tmp[32]; - - for (int64_t iir1 = ir1_start; iir1 < ir1_end; iir1 += blck_1) { - for (int64_t iir0 = ir0_start; iir0 < ir0_end; iir0 += blck_0) { - for (int64_t ir1 = iir1; ir1 < iir1 + blck_1 && ir1 < ir1_end; ir1 += num_rows_per_vec_dot) { - const int64_t i13 = (ir1 / (ne12 * ne1)); - const int64_t i12 = (ir1 - i13 * ne12 * ne1) / ne1; - const int64_t i11 = (ir1 - i13 * ne12 * ne1 - i12 * ne1); - - // broadcast src0 into src1 - const int64_t i03 = i13 / r3; - const int64_t i02 = i12 / r2; - - const int64_t i1 = i11; - const int64_t i2 = i12; - const int64_t i3 = i13; - - const char * src0_row = (const char*)src0->data + (0 + i02 * nb02 + i03 * nb03); - - // desc: when src1 is not a contiguous memory block we have to calculate the offset using the strides - // if it is, then we have either copied the data to params->wdata and made it contiguous or we are using - // the original src1 data pointer, so we should index using the indices directly - // TODO: this is a bit of a hack, we should probably have a better way to handle this - const char * src1_col = (const char*)wdata + - (src1_cont || src1->type != vec_dot_type - ? (i11 + i12 * ne11 + i13 * ne12 * ne11) * row_size - : (i11 * nb11 + i12 * nb12 + i13 * nb13)); - float * dst_col = (float*)((char*)dst->data + (i1 * nb1 + i2 * nb2 + i3 * nb3)); - - //for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ++ir0) { - // vec_dot(ne00, &dst_col[ir0], src0_row + ir0*nb01, src1_col); - //} - - for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ir0 += num_rows_per_vec_dot) { - vec_dot(ne00, &tmp[ir0 - iir0], (num_rows_per_vec_dot > 1 ? 16 : 0), src0_row + ir0 * nb01, (num_rows_per_vec_dot > 1 ? nb01 : 0), src1_col, (num_rows_per_vec_dot > 1 ? src1_col_stride : 0), num_rows_per_vec_dot); - } - - for (int cn = 0; cn < num_rows_per_vec_dot; ++cn) { - memcpy(&dst_col[iir0 + cn * nb1 / nb0], tmp + (cn * 16), (MIN(iir0 + blck_0, ir0_end) - iir0) * sizeof(float)); - } - } - } - } -} - -static void ggml_compute_forward_mul_mat( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - enum ggml_type const vec_dot_type = type_traits_cpu[src0->type].vec_dot_type; - ggml_from_float_t const from_float = type_traits_cpu[vec_dot_type].from_float; - int64_t const vec_dot_num_rows = type_traits_cpu[src0->type].nrows; - - GGML_ASSERT(ne0 == ne01); - GGML_ASSERT(ne1 == ne11); - GGML_ASSERT(ne2 == ne12); - GGML_ASSERT(ne3 == ne13); - - // we don't support permuted src0 or src1 - GGML_ASSERT(nb00 == ggml_type_size(src0->type)); - GGML_ASSERT(nb10 == ggml_type_size(src1->type)); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - // nb01 >= nb00 - src0 is not transposed - // compute by src0 rows - - // TODO: extract to "extra_op" -#if GGML_USE_LLAMAFILE - // broadcast factors - const int64_t r2 = ne12 / ne02; - const int64_t r3 = ne13 / ne03; - - const bool src1_cont = ggml_is_contiguous(src1); - - if (src1_cont) { - for (int64_t i13 = 0; i13 < ne13; i13++) - for (int64_t i12 = 0; i12 < ne12; i12++) - if (!llamafile_sgemm(params, - ne01, ne11, ne00/ggml_blck_size(src0->type), - (const char *)src0->data + i12/r2*nb02 + i13/r3*nb03, - nb01/ggml_type_size(src0->type), - (const char *)src1->data + i12*nb12 + i13*nb13, - nb11/ggml_type_size(src1->type), - (char *)dst->data + i12*nb2 + i13*nb3, - nb1/ggml_type_size(dst->type), - src0->type, - src1->type, - dst->type)) - goto UseGgmlGemm1; - return; - } -UseGgmlGemm1:; -#endif - - if (src1->type != vec_dot_type) { - char * wdata = params->wdata; - - const size_t nbw0 = ggml_type_size(vec_dot_type); - const size_t nbw1 = ggml_row_size(vec_dot_type, ne10); - const size_t nbw2 = nbw1*ne11; - const size_t nbw3 = nbw2*ne12; - - assert(params->wsize >= ne13*nbw3); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - - #if 0 - for (int64_t i13 = 0; i13 < ne13; ++i13) { - for (int64_t i12 = 0; i12 < ne12; ++i12) { - for (int64_t i11 = ith; i11 < ne11; i11 += nth) { - from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11), - (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1), - ne10); - } - } - } - #else - for (int64_t i13 = 0; i13 < ne13; ++i13) { - for (int64_t i12 = 0; i12 < ne12; ++i12) { - for (int64_t i11 = 0; i11 < ne11; ++i11) { - size_t bs = ggml_blck_size(vec_dot_type); - int64_t ne10_block_start = (ith * ne10/bs) / nth; - int64_t ne10_block_end = ((ith + 1) * ne10/bs) / nth; - from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + ne10_block_start*bs*nb10), - (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1 + ne10_block_start*nbw0), - (ne10_block_end - ne10_block_start) * bs); - } - } - } - #endif - } - - if (ith == 0) { - // Every thread starts at ith, so the first unprocessed chunk is nth. This save a bit of coordination right at the start. - atomic_store_explicit(¶ms->threadpool->current_chunk, nth, memory_order_relaxed); - } - - ggml_barrier(params->threadpool); - -#if GGML_USE_LLAMAFILE - if (src1->type != vec_dot_type) { - const void* wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; - const size_t row_size = ggml_row_size(vec_dot_type, ne10); - - for (int64_t i13 = 0; i13 < ne13; i13++) - for (int64_t i12 = 0; i12 < ne12; i12++) - if (!llamafile_sgemm(params, - ne01, ne11, ne00/ggml_blck_size(src0->type), - (const char *)src0->data + i12/r2*nb02 + i13/r3*nb03, - nb01/ggml_type_size(src0->type), - (const char *)wdata + (i12*ne11 + i13*ne12*ne11)*row_size, - row_size/ggml_type_size(vec_dot_type), - (char *)dst->data + i12*nb2 + i13*nb3, - nb1/ggml_type_size(dst->type), - src0->type, - vec_dot_type, - dst->type)) - goto UseGgmlGemm2; - return; - } -UseGgmlGemm2:; -#endif - - // This is the size of the first dimension of the result, so we can iterate that way. (see the ASSERT above, these are the same numbers) - const int64_t nr0 = ne0; - - // This is the size of the rest of the dimensions of the result - const int64_t nr1 = ne1 * ne2 * ne3; - - // Now select a reasonable chunk size. - int chunk_size = 16; - - // We need to step up the size if it's small - if (nr0 == 1 || nr1 == 1) { - chunk_size = 64; - } - - // distribute the work across the inner or outer loop based on which one is larger - // The number of chunks in the 0/1 dim. - // CEIL(nr0/chunk_size) - int64_t nchunk0 = (nr0 + chunk_size - 1) / chunk_size; - int64_t nchunk1 = (nr1 + chunk_size - 1) / chunk_size; - - // If the chunking is poor for the number of threads on this setup, scrap the whole plan. Re-chunk it by thread. - // Also, chunking by thread was measured to have perform better on NUMA systems. See https://github.com/ggml-org/llama.cpp/pull/6915 - // In theory, chunking should be just as useful on NUMA and non NUMA systems, but testing disagreed with that. - if (nchunk0 * nchunk1 < nth * 4 || ggml_is_numa()) { - // distribute the thread work across the inner or outer loop based on which one is larger - nchunk0 = nr0 > nr1 ? nth : 1; // parallelize by src0 rows - nchunk1 = nr0 > nr1 ? 1 : nth; // parallelize by src1 rows - } - - // The number of elements in each chunk - const int64_t dr0 = (nr0 + nchunk0 - 1) / nchunk0; - const int64_t dr1 = (nr1 + nchunk1 - 1) / nchunk1; - - // The first chunk comes from our thread_id, the rest will get auto-assigned. - int current_chunk = ith; - - while (current_chunk < nchunk0 * nchunk1) { - const int64_t ith0 = current_chunk % nchunk0; - const int64_t ith1 = current_chunk / nchunk0; - - const int64_t ir0_start = dr0 * ith0; - const int64_t ir0_end = MIN(ir0_start + dr0, nr0); - - const int64_t ir1_start = dr1 * ith1; - const int64_t ir1_end = MIN(ir1_start + dr1, nr1); - - // dot kernels can handle 1 row and col at a time, but mmla kernels can process 2 rows and cols - int64_t num_rows_per_vec_dot = vec_dot_num_rows; - - // these checks are needed to avoid crossing dim1 boundaries - // can be optimized, but the logic would become more complicated, so keeping it like this for simplicity - if ((nr0 % 2 != 0) || (ne11 % 2 != 0) || ((ir0_end - ir0_start) % 2 != 0) || ((ir1_end - ir1_start) % 2 != 0)) { - num_rows_per_vec_dot = 1; - } - ggml_compute_forward_mul_mat_one_chunk(params, dst, src0->type, num_rows_per_vec_dot, ir0_start, ir0_end, ir1_start, ir1_end); - - if (nth >= nchunk0 * nchunk1) { - break; - } - - current_chunk = atomic_fetch_add_explicit(¶ms->threadpool->current_chunk, 1, memory_order_relaxed); - } -} - -// ggml_compute_forward_mul_mat_id - -#define MMID_MATRIX_ROW(row_id, i1) matrix_rows[(row_id)*ids->ne[0]*ids->ne[1] + (i1)] - -struct mmid_row_mapping { - int32_t i1; - int32_t i2; -}; - -static void ggml_compute_forward_mul_mat_id_one_chunk( - struct ggml_tensor * dst, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - const struct ggml_tensor * ids, - const int64_t cur_a, - const int64_t ir0_start, - const int64_t ir0_end, - const int64_t ir1_start, - const int64_t ir1_end, - const char * src0_cur, - const struct mmid_row_mapping * matrix_rows, - const size_t row_size, - const bool src1_cont, - const void * wdata) { - - GGML_TENSOR_BINARY_OP_LOCALS - - const enum ggml_type type = src0->type; - - ggml_vec_dot_t const vec_dot = type_traits_cpu[type].vec_dot; - enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; - - const int64_t blck_0 = 16; - const int64_t blck_1 = 16; - - float tmp[16]; - - for (int64_t iir1 = ir1_start; iir1 < ir1_end; iir1 += blck_1) { - for (int64_t iir0 = ir0_start; iir0 < ir0_end; iir0 += blck_0) { - for (int64_t ir1 = iir1; ir1 < iir1 + blck_1 && ir1 < ir1_end; ++ir1) { - const int64_t _i12 = ir1; // logical row index for this expert - - struct mmid_row_mapping row_mapping = MMID_MATRIX_ROW(cur_a, _i12); - const int id = row_mapping.i1; // selected expert index - - const int64_t i11 = id % ne11; - const int64_t i12 = row_mapping.i2; // row index in src1 - - const int64_t i1 = id; // selected expert index - const int64_t i2 = i12; // row - - // desc: when src1 is not a contiguous memory block we have to calculate the offset using the strides - // if it is, then we have either copied the data to params->wdata and made it contiguous or we are using - // the original src1 data pointer, so we should index using the indices directly - // TODO: this is a bit of a hack, we should probably have a better way to handle this - const char * src1_col = (const char *) wdata + - (src1_cont || src1->type != vec_dot_type - ? (i11 + i12*ne11)*row_size - : (i11*nb11 + i12*nb12)); - - float * dst_col = (float *) ((char *) dst->data + (i1*nb1 + i2*nb2)); - - for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ++ir0) { - vec_dot(ne00, &tmp[ir0 - iir0], 0, src0_cur + ir0*nb01, 0, src1_col, 0, 1); - } - - memcpy(&dst_col[iir0], tmp, (MIN(iir0 + blck_0, ir0_end) - iir0)*sizeof(float)); - } - } - } -} - -static void * incr_ptr_aligned(void ** p, size_t size, size_t align) { - - void * ptr = *p; - ptr = (void *) GGML_PAD((uintptr_t) ptr, align); - *p = (void *) ((char *) ptr + size); - return ptr; -} - -static void ggml_compute_forward_mul_mat_id( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - const struct ggml_tensor * ids = dst->src[2]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - const enum ggml_type type = src0->type; - - const bool src1_cont = ggml_is_contiguous(src1); - - enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; - ggml_from_float_t const from_float = type_traits_cpu[vec_dot_type].from_float; - - // we don't support permuted src0 or src1 - GGML_ASSERT(nb00 == ggml_type_size(type)); - GGML_ASSERT(nb10 == ggml_type_size(src1->type)); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - // row groups - const int n_ids = ids->ne[0]; // n_expert_used - const int n_as = ne02; // n_expert - - void * wdata_cur = params->wdata; - - if (src1->type != vec_dot_type) { - incr_ptr_aligned(&wdata_cur, ggml_row_size(vec_dot_type, ggml_nelements(src1)), sizeof(int64_t)); - } - - int64_t * matrix_row_counts = // [n_as] - incr_ptr_aligned(&wdata_cur, n_as*sizeof(int64_t), sizeof(int64_t)); - - struct mmid_row_mapping * matrix_rows = // [n_as][ids->ne[0]*ids->ne[1]] - incr_ptr_aligned(&wdata_cur, n_as*ids->ne[0]*ids->ne[1]*sizeof(struct mmid_row_mapping), sizeof(int64_t)); - - char (*atomic_current_chunk)[CACHE_LINE_SIZE] = // [n_as] - incr_ptr_aligned(&wdata_cur, CACHE_LINE_SIZE * n_as, CACHE_LINE_SIZE); - - GGML_ASSERT(params->wsize >= (size_t)((char *) wdata_cur - (char *) params->wdata)); - - if (src1->type != vec_dot_type) { - char * wdata = params->wdata; - - const size_t nbw0 = ggml_type_size(vec_dot_type); - const size_t nbw1 = ggml_row_size(vec_dot_type, ne10); - const size_t nbw2 = nbw1*ne11; - const size_t nbw3 = nbw2*ne12; - - assert(params->wsize >= ne13*nbw3); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - -#if 0 - for (int64_t i13 = 0; i13 < ne13; ++i13) { - for (int64_t i12 = ith; i12 < ne12; i12 += nth) { - for (int64_t i11 = 0; i11 < ne11; ++i11) { - from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11), - (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1), - ne10); - } - } - } -#else - for (int64_t i13 = 0; i13 < ne13; ++i13) { - for (int64_t i12 = 0; i12 < ne12; ++i12) { - for (int64_t i11 = 0; i11 < ne11; ++i11) { - size_t bs = ggml_blck_size(vec_dot_type); - int64_t ne10_block_start = (ith * ne10/bs) / nth; - int64_t ne10_block_end = ((ith + 1) * ne10/bs) / nth; - from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + ne10_block_start*bs*nb10), - (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1 + ne10_block_start*nbw0), - (ne10_block_end - ne10_block_start) * bs); - } - } - } -#endif - } - - if (ith == 0) { - // initialize matrix_row_counts - memset(matrix_row_counts, 0, n_as*sizeof(int64_t)); - - // group rows by src0 matrix - for (int64_t iid1 = 0; iid1 < ids->ne[1]; ++iid1) { - for (int id = 0; id < n_ids; ++id) { - const int32_t i02 = *(const int32_t *) ((const char *) ids->data + iid1*ids->nb[1] + id*ids->nb[0]); - - assert(i02 >= 0 && i02 < n_as); - - MMID_MATRIX_ROW(i02, matrix_row_counts[i02]) = (struct mmid_row_mapping) {id, iid1}; - matrix_row_counts[i02] += 1; - } - } - } - - // reset current_chunk - for (int cur_a = ith; cur_a < n_as; cur_a += nth) { - atomic_int * current_chunk_ctr = (atomic_int *)(atomic_current_chunk + cur_a); - *current_chunk_ctr = nth; - } - - ggml_barrier(params->threadpool); - - for (int cur_a = 0; cur_a < n_as; ++cur_a) { - const int64_t cne1 = matrix_row_counts[cur_a]; - - if (cne1 == 0) { - continue; - } - - const char * src0_cur = (const char *) src0->data + cur_a * nb02; - const void * wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; - const size_t row_size = ggml_row_size(vec_dot_type, ne10); - - const int64_t nr0 = ne01; - const int64_t nr1 = cne1; - - int chunk_size = 16; - if (nr0 == 1 || nr1 == 1) { - chunk_size = 64; - } - -#if defined(__aarch64__) - // disable for ARM - const bool disable_chunking = true; -#else - // disable for NUMA - const bool disable_chunking = ggml_is_numa(); -#endif // defined(__aarch64__) - - int64_t nchunk0 = (nr0 + chunk_size - 1) / chunk_size; - int64_t nchunk1 = (nr1 + chunk_size - 1) / chunk_size; - - if (nchunk0 * nchunk1 < nth * 4 || disable_chunking) { - nchunk0 = nr0 > nr1 ? nth : 1; - nchunk1 = nr0 > nr1 ? 1 : nth; - } - - const int64_t dr0 = (nr0 + nchunk0 - 1) / nchunk0; - const int64_t dr1 = (nr1 + nchunk1 - 1) / nchunk1; - - int current_chunk = ith; - - atomic_int * current_chunk_ctr = (atomic_int *)(atomic_current_chunk + cur_a); - - while (current_chunk < nchunk0 * nchunk1) { - const int64_t ith0 = current_chunk % nchunk0; - const int64_t ith1 = current_chunk / nchunk0; - - const int64_t ir0_start = dr0 * ith0; - const int64_t ir0_end = MIN(ir0_start + dr0, nr0); - - const int64_t ir1_start = dr1 * ith1; - const int64_t ir1_end = MIN(ir1_start + dr1, nr1); - - ggml_compute_forward_mul_mat_id_one_chunk( - dst, src0, src1, ids, cur_a, - ir0_start, ir0_end, ir1_start, ir1_end, - src0_cur, matrix_rows, row_size, src1_cont, wdata - ); - - if (nth >= nchunk0 * nchunk1) { - break; - } - - current_chunk = atomic_fetch_add_explicit(current_chunk_ctr, 1, memory_order_relaxed); - } - } -} - -// ggml_compute_forward_out_prod - -static void ggml_compute_forward_out_prod_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - GGML_ASSERT(dst->type == GGML_TYPE_F32); - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_ASSERT(ne0 == ne00); - GGML_ASSERT(ne1 == ne10); - GGML_ASSERT(ne2 == ne12); - GGML_ASSERT(ne3 == ne13); - - GGML_ASSERT(ne2 % ne02 == 0); - GGML_ASSERT(ne3 % ne03 == 0); - - // we don't support permuted src0 or src1 - GGML_ASSERT(nb00 == sizeof(float)); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - // GGML_ASSERT(nb0 <= nb1); - // GGML_ASSERT(nb1 <= nb2); - // GGML_ASSERT(nb2 <= nb3); - - // nb01 >= nb00 - src0 is not transposed - // compute by src0 rows - - if (ith == 0) { - ggml_vec_set_f32(ne0*ne1*ne2*ne3, dst->data, 0); - } - ggml_barrier(params->threadpool); - - // dst[:,:,:,:] = 0 - // for i2,i3: - // for i1: - // for i01: - // for i0: - // dst[i0,i1,i2,i3] += src0[i0,i01,i2,i3] * src1[i1,i01,i2,i3] - - // parallelize by last three dimensions - - // total rows in dst - const int64_t nr = ne1*ne2*ne3; - - // rows per thread - const int64_t dr = (nr + nth - 1)/nth; - - // row range for this thread - const int64_t ir0 = dr*ith; - const int64_t ir1 = MIN(ir0 + dr, nr); - - // block-tiling attempt - const int64_t blck_0 = MAX(GGML_VEC_MAD_UNROLL, 32); - const int64_t blck_1 = 16; - - // dps == dst per src0, used for group query attention - const int64_t dps2 = ne2 / ne02; - const int64_t dps3 = ne3 / ne03; - - for (int64_t bir = ir0; bir < ir1; bir += blck_1) { - const int64_t bir1 = MIN(bir + blck_1, ir1); - for (int64_t bi01 = 0; bi01 < ne01; bi01 += blck_0) { - const int64_t bne01 = MIN(bi01 + blck_0, ne01); - for (int64_t ir = bir; ir < bir1; ++ir) { - // dst indices - const int64_t i3 = ir/(ne2*ne1); - const int64_t i2 = (ir - i3*ne2*ne1)/ne1; - const int64_t i1 = (ir - i3*ne2*ne1 - i2*ne1); - - const int64_t i02 = i2 / dps2; - const int64_t i03 = i3 / dps3; - - //const int64_t i10 = i1; - const int64_t i12 = i2; - const int64_t i13 = i3; - -#if GGML_VEC_MAD_UNROLL > 2 - const int64_t bne01_unroll = bne01 - (bne01 % GGML_VEC_MAD_UNROLL); - for (int64_t i01 = bi01; i01 < bne01_unroll; i01 += GGML_VEC_MAD_UNROLL) { - const int64_t i11 = i01; - - float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); - float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); - - ggml_vec_mad_f32_unroll(ne0, nb01, nb11, d, s0, s1); - } - for (int64_t i01 = bne01_unroll; i01 < bne01; ++i01) { - const int64_t i11 = i01; - - float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); - float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); - - ggml_vec_mad_f32(ne0, d, s0, *s1); - } -#else - for (int64_t i01 = bi01; i01 < bne01; ++i01) { - const int64_t i11 = i01; - - float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); - float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); - - ggml_vec_mad_f32(ne0, d, s0, *s1); - } -#endif - } - } - } -} - -static void ggml_compute_forward_out_prod_q_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS; - - const int ith = params->ith; - const int nth = params->nth; - - const enum ggml_type type = src0->type; - ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; - - GGML_ASSERT(ne02 == ne12); - GGML_ASSERT(ne03 == ne13); - GGML_ASSERT(ne2 == ne12); - GGML_ASSERT(ne3 == ne13); - - // we don't support permuted src0 dim0 - GGML_ASSERT(nb00 == ggml_type_size(type)); - - // dst dim0 cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - // GGML_ASSERT(nb0 <= nb1); - // GGML_ASSERT(nb1 <= nb2); - // GGML_ASSERT(nb2 <= nb3); - - GGML_ASSERT(ne0 == ne00); - GGML_ASSERT(ne1 == ne10); - GGML_ASSERT(ne2 == ne02); - GGML_ASSERT(ne3 == ne03); - - // nb01 >= nb00 - src0 is not transposed - // compute by src0 rows - - if (ith == 0) { - ggml_vec_set_f32(ne0*ne1*ne2*ne3, dst->data, 0); - } - ggml_barrier(params->threadpool); - - // parallelize by last three dimensions - - // total rows in dst - const int64_t nr = ne1*ne2*ne3; - - // rows per thread - const int64_t dr = (nr + nth - 1)/nth; - - // row range for this thread - const int64_t ir0 = dr*ith; - const int64_t ir1 = MIN(ir0 + dr, nr); - - // dst[:,:,:,:] = 0 - // for i2,i3: - // for i1: - // for i01: - // for i0: - // dst[i0,i1,i2,i3] += src0[i0,i01,i2,i3] * src1[i1,i01,i2,i3] - - float * wdata = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32) * ith; - - for (int64_t ir = ir0; ir < ir1; ++ir) { - // dst indices - const int64_t i3 = ir/(ne2*ne1); - const int64_t i2 = (ir - i3*ne2*ne1)/ne1; - const int64_t i1 = (ir - i3*ne2*ne1 - i2*ne1); - - const int64_t i02 = i2; - const int64_t i03 = i3; - - //const int64_t i10 = i1; - const int64_t i12 = i2; - const int64_t i13 = i3; - - for (int64_t i01 = 0; i01 < ne01; ++i01) { - const int64_t i11 = i01; - - float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); - float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); - - dequantize_row_q(s0, wdata, ne0); - ggml_vec_mad_f32(ne0, d, wdata, *s1); - } - } -} - -static void ggml_compute_forward_out_prod( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - { - ggml_compute_forward_out_prod_q_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - GGML_ABORT("fatal error"); // todo - // ggml_compute_forward_out_prod_f16_f32(params, dst); - } - case GGML_TYPE_F32: - { - ggml_compute_forward_out_prod_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_scale - -static void ggml_compute_forward_scale_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - - // scale factor - float v; - memcpy(&v, dst->op_params, sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - const size_t nb01 = src0->nb[1]; - - const size_t nb1 = dst->nb[1]; - - for (int i1 = ir0; i1 < ir1; i1++) { - if (dst->data != src0->data) { - // src0 is same shape as dst => same indices - memcpy((char *)dst->data + i1*nb1, (char *)src0->data + i1*nb01, nc * sizeof(float)); - } - ggml_vec_scale_f32(nc, (float *) ((char *) dst->data + i1*nb1), v); - } -} - -static void ggml_compute_forward_scale( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_scale_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_set - -static void ggml_compute_forward_set_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); - - // view src0 and dst with these strides and data offset inbytes during set - // nb0 is implicitly element_size because src0 and dst are contiguous - size_t nb1 = ((int32_t *) dst->op_params)[0]; - size_t nb2 = ((int32_t *) dst->op_params)[1]; - size_t nb3 = ((int32_t *) dst->op_params)[2]; - size_t offset = ((int32_t *) dst->op_params)[3]; - bool inplace = (bool) ((int32_t *) dst->op_params)[4]; - - if (!inplace) { - if (params->ith == 0) { - // memcpy needs to be synchronized across threads to avoid race conditions. - // => do it in INIT phase - memcpy( - ((char *) dst->data), - ((char *) src0->data), - ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - } - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src1); - const int nc = src1->ne[0]; - - GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) - GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) - - // src0 and dst as viewed during set - const size_t nb0 = ggml_element_size(src0); - - const int im0 = (ne10 == 0 ? 0 : ne10-1); - const int im1 = (ne11 == 0 ? 0 : ne11-1); - const int im2 = (ne12 == 0 ? 0 : ne12-1); - const int im3 = (ne13 == 0 ? 0 : ne13-1); - - GGML_ASSERT(offset + im0*nb0 + im1*nb1 + im2*nb2 + im3*nb3 <= ggml_nbytes(dst)); - - GGML_ASSERT(nb10 == sizeof(float)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are viewed with shape of src1 and offset - // => same indices - const int i3 = ir/(ne12*ne11); - const int i2 = (ir - i3*ne12*ne11)/ne11; - const int i1 = (ir - i3*ne12*ne11 - i2*ne11); - - ggml_vec_cpy_f32(nc, - (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), - (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); - } -} - -static void ggml_compute_forward_set_i32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); - - // view src0 and dst with these strides and data offset inbytes during set - // nb0 is implicitly element_size because src0 and dst are contiguous - size_t nb1 = ((int32_t *) dst->op_params)[0]; - size_t nb2 = ((int32_t *) dst->op_params)[1]; - size_t nb3 = ((int32_t *) dst->op_params)[2]; - size_t offset = ((int32_t *) dst->op_params)[3]; - bool inplace = (bool) ((int32_t *) dst->op_params)[4]; - - if (!inplace) { - if (params->ith == 0) { - // memcpy needs to be synchronized across threads to avoid race conditions. - // => do it in INIT phase - memcpy( - ((char *) dst->data), - ((char *) src0->data), - ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - } - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(src1); - const int nc = src1->ne[0]; - - GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) - GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) - - // src0 and dst as viewed during set - const size_t nb0 = ggml_element_size(src0); - - const int im0 = (ne10 == 0 ? 0 : ne10-1); - const int im1 = (ne11 == 0 ? 0 : ne11-1); - const int im2 = (ne12 == 0 ? 0 : ne12-1); - const int im3 = (ne13 == 0 ? 0 : ne13-1); - - GGML_ASSERT(offset + im0*nb0 + im1*nb1 + im2*nb2 + im3*nb3 <= ggml_nbytes(dst)); - - GGML_ASSERT(nb10 == sizeof(int32_t)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int ir = ir0; ir < ir1; ++ir) { - // src0 and dst are viewed with shape of src1 and offset - // => same indices - const int i3 = ir/(ne12*ne11); - const int i2 = (ir - i3*ne12*ne11)/ne11; - const int i1 = (ir - i3*ne12*ne11 - i2*ne11); - - ggml_vec_cpy_i32(nc, - (int32_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), - (int32_t *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); - } -} - -static void ggml_compute_forward_set( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_set_f32(params, dst); - } break; - case GGML_TYPE_I32: - { - ggml_compute_forward_set_i32(params, dst); - } break; - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q8_1: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_cpy - -static void ggml_compute_forward_cpy( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - ggml_compute_forward_dup(params, dst); -} - -// ggml_compute_forward_cont - -static void ggml_compute_forward_cont( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - ggml_compute_forward_dup(params, dst); -} - -// ggml_compute_forward_reshape - -static void ggml_compute_forward_reshape( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - // NOP - UNUSED(params); - UNUSED(dst); -} - -// ggml_compute_forward_view - -static void ggml_compute_forward_view( - const struct ggml_compute_params * params, - const struct ggml_tensor * dst) { - // NOP - UNUSED(params); - UNUSED(dst); -} - -// ggml_compute_forward_permute - -static void ggml_compute_forward_permute( - const struct ggml_compute_params * params, - const struct ggml_tensor * dst) { - // NOP - UNUSED(params); - UNUSED(dst); -} - -// ggml_compute_forward_transpose - -static void ggml_compute_forward_transpose( - const struct ggml_compute_params * params, - const struct ggml_tensor * dst) { - // NOP - UNUSED(params); - UNUSED(dst); -} - -// ggml_compute_forward_get_rows - -static void ggml_compute_forward_get_rows_q( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int64_t nc = ne00; - const int64_t nr = ggml_nelements(src1); - - const enum ggml_type type = src0->type; - ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; - - assert(ne0 == nc); - assert(ne02 == ne11); - assert(nb00 == ggml_type_size(type)); - assert(ggml_nrows(dst) == nr); - - const int ith = params->ith; - const int nth = params->nth; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int64_t i = ir0; i < ir1; ++i) { - const int64_t i12 = i/(ne11*ne10); - const int64_t i11 = (i - i12*ne11*ne10)/ne10; - const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); - const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); - - GGML_ASSERT(i01 >= 0 && i01 < ne01); - - dequantize_row_q( - (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), - (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); - } -} - -static void ggml_compute_forward_get_rows_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int64_t nc = ne00; - const int64_t nr = ggml_nelements(src1); - - assert(ne0 == nc); - assert(ne02 == ne11); - assert(nb00 == sizeof(ggml_fp16_t)); - assert(ggml_nrows(dst) == nr); - - const int ith = params->ith; - const int nth = params->nth; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int64_t i = ir0; i < ir1; ++i) { - const int64_t i12 = i/(ne11*ne10); - const int64_t i11 = (i - i12*ne11*ne10)/ne10; - const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); - const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); - - GGML_ASSERT(i01 >= 0 && i01 < ne01); - - ggml_fp16_to_fp32_row( - (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), - (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); - } -} - -static void ggml_compute_forward_get_rows_bf16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int64_t nc = ne00; - const int64_t nr = ggml_nelements(src1); - - assert(ne0 == nc); - assert(ne02 == ne11); - assert(nb00 == sizeof(ggml_bf16_t)); - assert(ggml_nrows(dst) == nr); - - const int ith = params->ith; - const int nth = params->nth; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int64_t i = ir0; i < ir1; ++i) { - const int64_t i12 = i/(ne11*ne10); - const int64_t i11 = (i - i12*ne11*ne10)/ne10; - const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); - const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); - - GGML_ASSERT(i01 >= 0 && i01 < ne01); - - ggml_bf16_to_fp32_row( - (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), - (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); - } -} - -static void ggml_compute_forward_get_rows_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_TENSOR_BINARY_OP_LOCALS - - const int64_t nc = ne00; - const int64_t nr = ggml_nelements(src1); - - assert(ne0 == nc); - assert(ne02 == ne11); - assert(nb00 == sizeof(float)); - assert(ggml_nrows(dst) == nr); - - const int ith = params->ith; - const int nth = params->nth; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int64_t i = ir0; i < ir1; ++i) { - const int64_t i12 = i/(ne11*ne10); - const int64_t i11 = (i - i12*ne11*ne10)/ne10; - const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); - const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); - - GGML_ASSERT(i01 >= 0 && i01 < ne01); - - ggml_vec_cpy_f32(nc, - (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), - (float *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03)); - } -} - -static void ggml_compute_forward_get_rows( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q8_1: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - { - ggml_compute_forward_get_rows_q(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_get_rows_f16(params, dst); - } break; - case GGML_TYPE_BF16: - { - ggml_compute_forward_get_rows_bf16(params, dst); - } break; - case GGML_TYPE_F32: - case GGML_TYPE_I32: - { - ggml_compute_forward_get_rows_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } - - //static bool first = true; - //printf("ne0 = %d, ne1 = %d, ne2 = %d\n", dst->ne[0], dst->ne[1], dst->ne[2]); - //if (first) { - // first = false; - //} else { - // for (int k = 0; k < dst->ne[1]; ++k) { - // for (int j = 0; j < dst->ne[0]/16; ++j) { - // for (int i = 0; i < 16; ++i) { - // printf("%8.4f ", ((float *) dst->data)[k*dst->ne[0] + j*16 + i]); - // } - // printf("\n"); - // } - // printf("\n"); - // } - // printf("\n"); - // exit(0); - //} -} - -// ggml_compute_forward_get_rows_back - -static void ggml_compute_forward_get_rows_back_f32_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(ggml_is_contiguous(dst)); - - // ggml_compute_forward_dup_same_cont(params, opt0, dst); - - memset(dst->data, 0, ggml_nbytes(dst)); - - const int nc = src0->ne[0]; - const int nr = ggml_nelements(src1); - - GGML_ASSERT( dst->ne[0] == nc); - GGML_ASSERT(src0->nb[0] == sizeof(ggml_fp16_t)); - - for (int i = 0; i < nr; ++i) { - const int r = ((int32_t *) src1->data)[i]; - - for (int j = 0; j < nc; ++j) { - ggml_fp16_t v = ((ggml_fp16_t *) ((char *) src0->data + i*src0->nb[1]))[j]; - ((float *) ((char *) dst->data + r*dst->nb[1]))[j] += GGML_FP16_TO_FP32(v); - } - } -} - -static void ggml_compute_forward_get_rows_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - if (params->ith != 0) { - return; - } - - GGML_ASSERT(ggml_is_contiguous(dst)); - - // ggml_compute_forward_dup_same_cont(params, opt0, dst); - - memset(dst->data, 0, ggml_nbytes(dst)); - - const int nc = src0->ne[0]; - const int nr = ggml_nelements(src1); - - GGML_ASSERT( dst->ne[0] == nc); - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - for (int i = 0; i < nr; ++i) { - const int r = ((int32_t *) src1->data)[i]; - - ggml_vec_add_f32(nc, - (float *) ((char *) dst->data + r*dst->nb[1]), - (float *) ((char *) dst->data + r*dst->nb[1]), - (float *) ((char *) src0->data + i*src0->nb[1])); - } -} - -static void ggml_compute_forward_get_rows_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_get_rows_back_f32_f16(params, dst); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_get_rows_back_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } - - //static bool first = true; - //printf("ne0 = %d, ne1 = %d, ne2 = %d\n", dst->ne[0], dst->ne[1], dst->ne[2]); - //if (first) { - // first = false; - //} else { - // for (int k = 0; k < dst->ne[1]; ++k) { - // for (int j = 0; j < dst->ne[0]/16; ++j) { - // for (int i = 0; i < 16; ++i) { - // printf("%8.4f ", ((float *) dst->data)[k*dst->ne[0] + j*16 + i]); - // } - // printf("\n"); - // } - // printf("\n"); - // } - // printf("\n"); - // exit(0); - //} -} - -// ggml_compute_forward_diag - -static void ggml_compute_forward_diag_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - // TODO: handle transposed/permuted matrices - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(ne00 == ne0); - GGML_ASSERT(ne00 == ne1); - GGML_ASSERT(ne01 == 1); - GGML_ASSERT(ne02 == ne2); - GGML_ASSERT(ne03 == ne3); - - GGML_ASSERT(nb00 == sizeof(float)); - GGML_ASSERT(nb0 == sizeof(float)); - - for (int i3 = 0; i3 < ne3; i3++) { - for (int i2 = 0; i2 < ne2; i2++) { - for (int i1 = 0; i1 < ne1; i1++) { - float * d = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1); - float * s = (float *)((char *) src0->data + i3*nb03 + i2*nb02); - for (int i0 = 0; i0 < i1; i0++) { - d[i0] = 0; - } - d[i1] = s[i1]; - for (int i0 = i1+1; i0 < ne0; i0++) { - d[i0] = 0; - } - } - } - } -} - -static void ggml_compute_forward_diag( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_diag_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_diag_mask_inf - -static void ggml_compute_forward_diag_mask_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const float value) { - - const struct ggml_tensor * src0 = dst->src[0]; - - const int ith = params->ith; - const int nth = params->nth; - - const int n_past = ((int32_t *) dst->op_params)[0]; - const bool inplace = src0->data == dst->data; - - GGML_ASSERT(n_past >= 0); - - if (!inplace) { - if (ith == 0) { - // memcpy needs to be synchronized across threads to avoid race conditions. - // => do it in INIT phase - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); - GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); - memcpy( - ((char *) dst->data), - ((char *) src0->data), - ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - } - - // TODO: handle transposed/permuted matrices - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - const int nr = src0->ne[1]; - const int nz = n/nr; - - GGML_ASSERT( dst->nb[0] == sizeof(float)); - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - for (int k = 0; k < nz; k++) { - for (int j = ith; j < nr; j += nth) { - for (int i = n_past; i < nc; i++) { - if (i > n_past + j) { - *(float *)((char *) dst->data + k*dst->nb[2] + j*dst->nb[1] + i*dst->nb[0]) = value; - } - } - } - } -} - -static void ggml_compute_forward_diag_mask_inf( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_diag_mask_f32(params, dst, -INFINITY); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -static void ggml_compute_forward_diag_mask_zero( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_diag_mask_f32(params, dst, 0); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_soft_max - -static void ggml_compute_forward_soft_max_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - assert(ggml_is_contiguous(dst)); - assert(ggml_are_same_shape(src0, dst)); - - float scale = 1.0f; - float max_bias = 0.0f; - - memcpy(&scale, (float *) dst->op_params + 0, sizeof(float)); - memcpy(&max_bias, (float *) dst->op_params + 1, sizeof(float)); - - // TODO: handle transposed/permuted matrices - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - //const int64_t ne11 = src1 ? src1->ne[1] : 1; - - // TODO: is this supposed to be ceil instead of floor? - // https://huggingface.co/mosaicml/mpt-7b/blob/main/attention.py#L370 - const uint32_t n_head = ne02; - const uint32_t n_head_log2 = 1u << (uint32_t) floor(log2(n_head)); - - const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); - const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - float * wp = (float *) params->wdata + (nc + CACHE_LINE_SIZE_F32) * ith; - - const bool use_f16 = (src1 && src1->type == GGML_TYPE_F16); - - for (int i1 = ir0; i1 < ir1; i1++) { - // ALiBi - const uint32_t h = (i1/ne01)%ne02; // head - const float slope = (max_bias > 0.0f) ? h < n_head_log2 ? powf(m0, h + 1) : powf(m1, 2*(h - n_head_log2) + 1) : 1.0f; - - float * sp = (float *)((char *) src0->data + i1*src0->nb[1]); - float * dp = (float *)((char *) dst->data + i1*dst->nb[1]); - - // broadcast the mask across rows - ggml_fp16_t * mp_f16 = src1 ? (ggml_fp16_t *)((char *) src1->data) + (i1%ne01)*ne00 : NULL; - float * mp_f32 = src1 ? (float *)((char *) src1->data) + (i1%ne01)*ne00 : NULL; - - ggml_vec_cpy_f32 (nc, wp, sp); - ggml_vec_scale_f32(nc, wp, scale); - if (mp_f32) { - if (use_f16) { - for (int i = 0; i < nc; ++i) { - wp[i] += slope*GGML_FP16_TO_FP32(mp_f16[i]); - } - } else { - for (int i = 0; i < nc; ++i) { - wp[i] += slope*mp_f32[i]; - } - } - } - -#ifndef NDEBUG - for (int i = 0; i < nc; ++i) { - //printf("p[%d] = %f\n", i, p[i]); - assert(!isnan(wp[i])); - } -#endif - - float max = -INFINITY; - ggml_vec_max_f32(nc, &max, wp); - - ggml_float sum = ggml_vec_soft_max_f32(nc, dp, wp, max); - assert(sum > 0.0); - - sum = 1.0/sum; - ggml_vec_scale_f32(nc, dp, sum); - -#ifndef NDEBUG - for (int i = 0; i < nc; ++i) { - assert(!isnan(dp[i])); - assert(!isinf(dp[i])); - } -#endif - } -} - -static void ggml_compute_forward_soft_max( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_soft_max_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - - -// ggml_compute_forward_soft_max_ext_back - -static void ggml_compute_forward_soft_max_ext_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(src1)); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_are_same_shape(src1, dst)); - - float scale = 1.0f; - float max_bias = 0.0f; - - memcpy(&scale, (const float *) dst->op_params + 0, sizeof(float)); - memcpy(&max_bias, (const float *) dst->op_params + 1, sizeof(float)); - - GGML_ASSERT(max_bias == 0.0f); - - // TODO: handle transposed/permuted matrices - - const int ith = params->ith; - const int nth = params->nth; - - const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - for (int i1 = ir0; i1 < ir1; i1++) { - float *dy = (float *)((char *) src0->data + i1*src0->nb[1]); - float *y = (float *)((char *) src1->data + i1*src1->nb[1]); - float *dx = (float *)((char *) dst->data + i1*dst->nb[1]); - -#ifndef NDEBUG - for (int i = 0; i < nc; ++i) { - //printf("p[%d] = %f\n", i, p[i]); - assert(!isnan(dy[i])); - assert(!isnan(y[i])); - } -#endif - // Jii = yi - yi*yi - // Jij = -yi*yj - // J = diag(y)-y.T*y - // dx = J * dy - // dxk = sum_i(Jki * dyi) - // dxk = sum_i(-yk*yi * dyi) - (-yk*yk)*dyk + (yk - yk*yk)*dyk - // dxk = sum_i(-yk*yi * dyi) + yk*yk*dyk + yk*dyk - yk*yk*dyk - // dxk = sum_i(-yk*yi * dyi) + yk*dyk - // dxk = -yk * sum_i(yi * dyi) + yk*dyk - // dxk = -yk * dot(y, dy) + yk*dyk - // dxk = yk * (- dot(y, dy) + dyk) - // dxk = yk * (dyk - dot(y, dy)) - // - // post-order: - // dot_y_dy := dot(y, dy) - // dx := dy - // dx := dx - dot_y_dy - // dx := dx * y - - // linear runtime, no additional memory - float dot_y_dy = 0; - ggml_vec_dot_f32 (nc, &dot_y_dy, 0, y, 0, dy, 0, 1); - ggml_vec_cpy_f32 (nc, dx, dy); - ggml_vec_acc1_f32 (nc, dx, -dot_y_dy); - ggml_vec_mul_f32 (nc, dx, dx, y); - ggml_vec_scale_f32(nc, dx, scale); - -#ifndef NDEBUG - for (int i = 0; i < nc; ++i) { - assert(!isnan(dx[i])); - assert(!isinf(dx[i])); - } -#endif - } -} - -static void ggml_compute_forward_soft_max_ext_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_soft_max_ext_back_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_clamp - -static void ggml_compute_forward_clamp_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - float min; - float max; - memcpy(&min, (float *) dst->op_params + 0, sizeof(float)); - memcpy(&max, (float *) dst->op_params + 1, sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - - const size_t nb00 = src0->nb[0]; - const size_t nb01 = src0->nb[1]; - - const size_t nb0 = dst->nb[0]; - const size_t nb1 = dst->nb[1]; - - GGML_ASSERT( nb0 == sizeof(float)); - GGML_ASSERT(nb00 == sizeof(float)); - - for (int j = ith; j < n; j += nth) { - float * dst_ptr = (float *) ((char *) dst->data + j*nb1); - float * src0_ptr = (float *) ((char *) src0->data + j*nb01); - - for (int i = 0; i < nc; i++) { - dst_ptr[i] = MAX(MIN(src0_ptr[i], max), min); - } - } -} - -static void ggml_compute_forward_clamp_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - float min; - float max; - memcpy(&min, (float *) dst->op_params + 0, sizeof(float)); - memcpy(&max, (float *) dst->op_params + 1, sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - - const size_t nb00 = src0->nb[0]; - const size_t nb01 = src0->nb[1]; - - const size_t nb0 = dst->nb[0]; - const size_t nb1 = dst->nb[1]; - - GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - - for (int j = ith; j < n; j += nth) { - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + j*nb1); - ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + j*nb01); - - for (int i = 0; i < nc; i++) { - float v = GGML_FP16_TO_FP32(src0_ptr[i]); - dst_ptr[i] = GGML_FP32_TO_FP16(MAX(MIN(v, max), min)); - } - } -} - -static void ggml_compute_forward_clamp( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_clamp_f32(params, dst); - } break; - case GGML_TYPE_F16: - { - ggml_compute_forward_clamp_f16(params, dst); - } break; - case GGML_TYPE_BF16: - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q8_1: - case GGML_TYPE_Q2_K: - case GGML_TYPE_Q3_K: - case GGML_TYPE_Q4_K: - case GGML_TYPE_Q5_K: - case GGML_TYPE_Q6_K: - case GGML_TYPE_TQ1_0: - case GGML_TYPE_TQ2_0: - case GGML_TYPE_IQ2_XXS: - case GGML_TYPE_IQ2_XS: - case GGML_TYPE_IQ3_XXS: - case GGML_TYPE_IQ1_S: - case GGML_TYPE_IQ1_M: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_IQ4_XS: - case GGML_TYPE_IQ3_S: - case GGML_TYPE_IQ2_S: - case GGML_TYPE_Q8_K: - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_I64: - case GGML_TYPE_F64: - case GGML_TYPE_COUNT: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_rope - -static float rope_yarn_ramp(const float low, const float high, const int i0) { - const float y = (i0 / 2 - low) / MAX(0.001f, high - low); - return 1 - MIN(1, MAX(0, y)); -} - -// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn -// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. -static void rope_yarn( - float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, - float * cos_theta, float * sin_theta) { - // Get n-d rotational scaling corrected for extrapolation - float theta_interp = freq_scale * theta_extrap; - float theta = theta_interp; - if (ext_factor != 0.0f) { - float ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; - theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; - - // Get n-d magnitude scaling corrected for interpolation - mscale *= 1.0f + 0.1f * logf(1.0f / freq_scale); - } - *cos_theta = cosf(theta) * mscale; - *sin_theta = sinf(theta) * mscale; -} - -static void ggml_rope_cache_init( - float theta_base, float freq_scale, const float * freq_factors, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, - float * cache, float sin_sign, float theta_scale) { - // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py - float theta = theta_base; - for (int64_t i0 = 0; i0 < ne0; i0 += 2) { - const float ff = freq_factors ? freq_factors[i0/2] : 1.0f; - rope_yarn( - theta/ff, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] - ); - cache[i0 + 1] *= sin_sign; - - theta *= theta_scale; - } -} - -static void ggml_mrope_cache_init( - float theta_base_t, float theta_base_h, float theta_base_w, float theta_base_e, int sections[4], bool indep_sects, - float freq_scale, const float * freq_factors, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, - float * cache, float sin_sign, float theta_scale) { - // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py - float theta_t = theta_base_t; - float theta_h = theta_base_h; - float theta_w = theta_base_w; - float theta_e = theta_base_e; // extra position id for vision encoder - int sect_dims = sections[0] + sections[1] + sections[2] + sections[3]; - int sec_w = sections[1] + sections[0]; - int sec_e = sections[2] + sec_w; - GGML_ASSERT(sect_dims <= ne0); - - for (int64_t i0 = 0; i0 < ne0; i0 += 2) { - const float ff = freq_factors ? freq_factors[i0/2] : 1.0f; - - int sector = (i0 / 2) % sect_dims; - if (indep_sects) { - // compute theta independently for each dim sections - // (i.e. reset corresponding theta when `i0` go from one section to another) - if (sector == 0) { - theta_t = theta_base_t; - } - else if (sector == sections[0]) { - theta_h = theta_base_h;; - } - else if (sector == sec_w) { - theta_w = theta_base_w; - } - else if (sector == sec_e) { - theta_e = theta_base_e; - } - } - - float theta = theta_t; - if (sector >= sections[0] && sector < sec_w) { - theta = theta_h; - } - else if (sector >= sec_w && sector < sec_w + sections[2]) { - theta = theta_w; - } - else if (sector >= sec_w + sections[2]) { - theta = theta_e; - } - - rope_yarn( - theta/ff, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] - ); - cache[i0 + 1] *= sin_sign; - - theta_t *= theta_scale; - theta_w *= theta_scale; - theta_h *= theta_scale; - theta_e *= theta_scale; - } -} - -static void ggml_compute_forward_rope_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const bool forward) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - const struct ggml_tensor * src2 = dst->src[2]; - - float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; - int sections[4]; - - //const int n_past = ((int32_t *) dst->op_params)[0]; - const int n_dims = ((int32_t *) dst->op_params)[1]; - const int mode = ((int32_t *) dst->op_params)[2]; - //const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; - - memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); - memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); - memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); - memcpy(&attn_factor, (int32_t *) dst->op_params + 8, sizeof(float)); - memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); - memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); - memcpy(§ions, (int32_t *) dst->op_params + 11, sizeof(int)*4); - - GGML_TENSOR_UNARY_OP_LOCALS - - //printf("ne0: %d, ne1: %d, ne2: %d, ne3: %d\n", ne0, ne1, ne2, ne3); - //printf("n_past = %d, ne2 = %d\n", n_past, ne2); - - GGML_ASSERT(nb00 == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(dst); - - GGML_ASSERT(n_dims <= ne0); - GGML_ASSERT(n_dims % 2 == 0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - // row index used to determine which thread to use - int ir = 0; - - const float theta_scale = powf(freq_base, -2.0f/n_dims); - - float corr_dims[2]; - ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); - - const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; - const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; // ggml_rope_multi, multimodal rotary position embedding - const bool is_vision = mode == GGML_ROPE_TYPE_VISION; - - if (is_mrope) { - GGML_ASSERT(sections[0] > 0 || sections[1] > 0 || sections[2] > 0); - } - - if (is_vision) { - GGML_ASSERT(n_dims == ne0/2); - } - - const float * freq_factors = NULL; - if (src2 != NULL) { - GGML_ASSERT(src2->type == GGML_TYPE_F32); - GGML_ASSERT(src2->ne[0] >= n_dims / 2); - freq_factors = (const float *) src2->data; - } - - // backward process uses inverse rotation by cos and sin. - // cos and sin build a rotation matrix, where the inverse is the transpose. - // this essentially just switches the sign of sin. - const float sin_sign = forward ? 1.0f : -1.0f; - - const int32_t * pos = (const int32_t *) src1->data; - - for (int64_t i3 = 0; i3 < ne3; i3++) { // batch - for (int64_t i2 = 0; i2 < ne2; i2++) { // seq-len - - float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; - if (!is_mrope) { - const int64_t p = pos[i2]; - ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } - else { - const int64_t p_t = pos[i2]; - const int64_t p_h = pos[i2 + ne2]; - const int64_t p_w = pos[i2 + ne2 * 2]; - const int64_t p_e = pos[i2 + ne2 * 3]; - ggml_mrope_cache_init( - p_t, p_h, p_w, p_e, sections, is_vision, - freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } - - for (int64_t i1 = 0; i1 < ne1; i1++) { // attn-heads - if (ir++ < ir0) continue; - if (ir > ir1) break; - - if (is_neox || is_mrope) { - if (is_vision){ - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = src[0]; - const float x1 = src[n_dims]; - - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims] = x0*sin_theta + x1*cos_theta; - } - } else { - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = src[0]; - const float x1 = src[n_dims/2]; - - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; - } - } - } else { - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - const float x0 = src[0]; - const float x1 = src[1]; - - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[1] = x0*sin_theta + x1*cos_theta; - } - } - - if (is_vision) { - for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = src[0]; - const float x1 = src[n_dims]; - - dst_data[0] = x0*cos_theta - x1*sin_theta; - dst_data[n_dims] = x0*sin_theta + x1*cos_theta; - } - } else { - // fill the remain channels with data from src tensor - for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { - const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - dst_data[0] = src[0]; - dst_data[1] = src[1]; - } - } - } - } - } -} - -// TODO: deduplicate f16/f32 code -static void ggml_compute_forward_rope_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const bool forward) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - const struct ggml_tensor * src2 = dst->src[2]; - - float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; - int sections[4]; - - //const int n_past = ((int32_t *) dst->op_params)[0]; - const int n_dims = ((int32_t *) dst->op_params)[1]; - const int mode = ((int32_t *) dst->op_params)[2]; - //const int n_ctx = ((int32_t *) dst->op_params)[3]; - const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; - memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); - memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); - memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); - memcpy(&attn_factor, (int32_t *) dst->op_params + 8, sizeof(float)); - memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); - memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); - memcpy(§ions, (int32_t *) dst->op_params + 11, sizeof(int)*4); - - - GGML_TENSOR_UNARY_OP_LOCALS - - //printf("ne0: %d, ne1: %d, ne2: %d, ne3: %d\n", ne0, ne1, ne2, ne3); - //printf("n_past = %d, ne2 = %d\n", n_past, ne2); - - GGML_ASSERT(nb0 == sizeof(ggml_fp16_t)); - - const int ith = params->ith; - const int nth = params->nth; - - const int nr = ggml_nrows(dst); - - GGML_ASSERT(n_dims <= ne0); - GGML_ASSERT(n_dims % 2 == 0); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - // row index used to determine which thread to use - int ir = 0; - - const float theta_scale = powf(freq_base, -2.0f/n_dims); - - float corr_dims[2]; - ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); - - const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; - const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; - const bool is_vision = mode == GGML_ROPE_TYPE_VISION; - - if (is_mrope) { - GGML_ASSERT(sections[0] > 0 || sections[1] > 0 || sections[2] > 0); - } - - if (is_vision) { - GGML_ASSERT(n_dims == ne0/2); - } - - const float * freq_factors = NULL; - if (src2 != NULL) { - GGML_ASSERT(src2->type == GGML_TYPE_F32); - GGML_ASSERT(src2->ne[0] >= n_dims / 2); - freq_factors = (const float *) src2->data; - } - - // backward process uses inverse rotation by cos and sin. - // cos and sin build a rotation matrix, where the inverse is the transpose. - // this essentially just switches the sign of sin. - const float sin_sign = forward ? 1.0f : -1.0f; - - const int32_t * pos = (const int32_t *) src1->data; - - for (int64_t i3 = 0; i3 < ne3; i3++) { - for (int64_t i2 = 0; i2 < ne2; i2++) { - - float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; - if (!is_mrope) { - const int64_t p = pos[i2]; - ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } - else { - const int64_t p_t = pos[i2]; - const int64_t p_h = pos[i2 + ne2]; - const int64_t p_w = pos[i2 + ne2 * 2]; - const int64_t p_e = pos[i2 + ne2 * 3]; - ggml_mrope_cache_init( - p_t, p_h, p_w, p_e, sections, is_vision, - freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); - } - - for (int64_t i1 = 0; i1 < ne1; i1++) { - if (ir++ < ir0) continue; - if (ir > ir1) break; - - if (is_neox || is_mrope) { - if (is_vision) { - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[n_dims]); - - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[n_dims] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - } - } else { - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[n_dims/2]); - - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[n_dims/2] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - } - } - } else { - for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[1]); - - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[1] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - } - } - - if (is_vision) { - for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { - const int64_t ic = i0/2; - - const float cos_theta = cache[i0 + 0]; - const float sin_theta = cache[i0 + 1]; - - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); - - const float x0 = GGML_FP16_TO_FP32(src[0]); - const float x1 = GGML_FP16_TO_FP32(src[n_dims]); - - dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); - dst_data[n_dims] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); - } - } else { - for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); - - dst_data[0] = src[0]; - dst_data[1] = src[1]; - } - } - } - } - } -} - -static void ggml_compute_forward_rope( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_rope_f16(params, dst, true); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_rope_f32(params, dst, true); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_rope_back - -static void ggml_compute_forward_rope_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_rope_f16(params, dst, false); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_rope_f32(params, dst, false); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_conv_transpose_1d - -static void ggml_compute_forward_conv_transpose_1d_f16_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - const int nk = ne00*ne01*ne02; - - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb10 == sizeof(float)); - - if (ith == 0) { - memset(params->wdata, 0, params->wsize); - - // permute kernel data (src0) from (K x Cout x Cin) to (Cin x K x Cout) - { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; - - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); - ggml_fp16_t * dst_data = wdata + i01*ne00*ne02; - for (int64_t i00 = 0; i00 < ne00; i00++) { - dst_data[i00*ne02 + i02] = src[i00]; - } - } - } - } - - // permute source data (src1) from (L x Cin) to (Cin x L) - { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + nk; - ggml_fp16_t * dst_data = wdata; - - for (int64_t i11 = 0; i11 < ne11; i11++) { - const float * const src = (float *)((char *) src1->data + i11*nb11); - for (int64_t i10 = 0; i10 < ne10; i10++) { - dst_data[i10*ne11 + i11] = GGML_FP32_TO_FP16(src[i10]); - } - } - } - - // need to zero dst since we are accumulating into it - memset(dst->data, 0, ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - - const int32_t s0 = ((const int32_t*)(dst->op_params))[0]; - - // total rows in dst - const int nr = ne1; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; - ggml_fp16_t * const wdata_src = wdata + nk; - - for (int i1 = ir0; i1 < ir1; i1++) { - float * dst_data = (float *)((char *) dst->data + i1*nb1); - ggml_fp16_t * wdata_kernel = wdata + i1*ne02*ne00; - for (int i10 = 0; i10 < ne10; i10++) { - const int i1n = i10*ne11; - for (int i00 = 0; i00 < ne00; i00++) { - float v = 0; - ggml_vec_dot_f16(ne02, &v, 0, - (ggml_fp16_t *) wdata_src + i1n, 0, - (ggml_fp16_t *) wdata_kernel + i00*ne02, 0, 1); - dst_data[i10*s0 + i00] += v; - } - } - } -} - -static void ggml_compute_forward_conv_transpose_1d_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - const int nk = ne00*ne01*ne02; - - GGML_ASSERT(nb00 == sizeof(float)); - GGML_ASSERT(nb10 == sizeof(float)); - - if (ith == 0) { - memset(params->wdata, 0, params->wsize); - - // prepare kernel data (src0) from (K x Cout x Cin) to (Cin x K x Cout) - { - float * const wdata = (float *) params->wdata + 0; - - for (int64_t i02 = 0; i02 < ne02; i02++) { - for (int64_t i01 = 0; i01 < ne01; i01++) { - const float * const src = (float *)((char *) src0->data + i02*nb02 + i01*nb01); - float * dst_data = wdata + i01*ne00*ne02; - for (int64_t i00 = 0; i00 < ne00; i00++) { - dst_data[i00*ne02 + i02] = src[i00]; - } - } - } - } - - // prepare source data (src1) - { - float * const wdata = (float *) params->wdata + nk; - float * dst_data = wdata; - - for (int64_t i11 = 0; i11 < ne11; i11++) { - const float * const src = (float *)((char *) src1->data + i11*nb11); - for (int64_t i10 = 0; i10 < ne10; i10++) { - dst_data[i10*ne11 + i11] = src[i10]; - } - } - } - - // need to zero dst since we are accumulating into it - memset(dst->data, 0, ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - - const int32_t s0 = ((const int32_t*)(dst->op_params))[0]; - - // total rows in dst - const int nr = ne1; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - float * const wdata = (float *) params->wdata + 0; - float * const wdata_src = wdata + nk; - - for (int i1 = ir0; i1 < ir1; i1++) { - float * dst_data = (float *)((char *) dst->data + i1*nb1); - float * wdata_kernel = wdata + i1*ne02*ne00; - for (int i10 = 0; i10 < ne10; i10++) { - const int i1n = i10*ne11; - for (int i00 = 0; i00 < ne00; i00++) { - float v = 0; - ggml_vec_dot_f32(ne02, &v, 0, - wdata_src + i1n, 0, - wdata_kernel + i00*ne02, 0, 1); - dst_data[i10*s0 + i00] += v; - } - } - } -} - -static void ggml_compute_forward_conv_transpose_1d( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_conv_transpose_1d_f16_f32(params, dst); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_conv_transpose_1d_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_im2col_f32 -// src0: kernel [OC, IC, KH, KW] -// src1: image [N, IC, IH, IW] -// dst: result [N, OH, OW, IC*KH*KW] -static void ggml_compute_forward_im2col_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - GGML_TENSOR_BINARY_OP_LOCALS; - - const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; - const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; - const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; - const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; - const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; - const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t N = is_2D ? ne13 : ne12; - const int64_t IC = is_2D ? ne12 : ne11; - const int64_t IH = is_2D ? ne11 : 1; - const int64_t IW = ne10; - - const int64_t KH = is_2D ? ne01 : 1; - const int64_t KW = ne00; - - const int64_t OH = is_2D ? ne2 : 1; - const int64_t OW = ne1; - - int ofs0 = is_2D ? nb13 : nb12; - int ofs1 = is_2D ? nb12 : nb11; - - GGML_ASSERT(nb10 == sizeof(float)); - - // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] - { - float * const wdata = (float *) dst->data; - - for (int64_t in = 0; in < N; in++) { - for (int64_t ioh = 0; ioh < OH; ioh++) { // 1 - for (int64_t iow = 0; iow < OW; iow++) { - for (int64_t iic = ith; iic < IC; iic += nth) { - - // micro kernel - float * dst_data = wdata + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] - const float * const src_data = (float *)((char *) src1->data + in*ofs0 + iic*ofs1); // [IH, IW] - - for (int64_t ikh = 0; ikh < KH; ikh++) { // 1 - for (int64_t ikw = 0; ikw < KW; ikw++) { - const int64_t iiw = iow*s0 + ikw*d0 - p0; - const int64_t iih = ioh*s1 + ikh*d1 - p1; - - if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { - dst_data[iic*(KH*KW) + ikh*KW + ikw] = 0; - } else { - dst_data[iic*(KH*KW) + ikh*KW + ikw] = (src_data[iih*IW + iiw]); - } - } - } - } - } - } - } - } -} - - -// ggml_compute_forward_im2col_f16 -// src0: kernel [OC, IC, KH, KW] -// src1: image [N, IC, IH, IW] -// dst: result [N, OH, OW, IC*KH*KW] -static void ggml_compute_forward_im2col_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F16); - - GGML_TENSOR_BINARY_OP_LOCALS; - - const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; - const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; - const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; - const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; - const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; - const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t N = is_2D ? ne13 : ne12; - const int64_t IC = is_2D ? ne12 : ne11; - const int64_t IH = is_2D ? ne11 : 1; - const int64_t IW = ne10; - - const int64_t KH = is_2D ? ne01 : 1; - const int64_t KW = ne00; - - const int64_t OH = is_2D ? ne2 : 1; - const int64_t OW = ne1; - - int ofs0 = is_2D ? nb13 : nb12; - int ofs1 = is_2D ? nb12 : nb11; - - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb10 == sizeof(float)); - - // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] - { - ggml_fp16_t * const wdata = (ggml_fp16_t *) dst->data; - - for (int64_t in = 0; in < N; in++) { - for (int64_t ioh = 0; ioh < OH; ioh++) { // 1 - for (int64_t iow = 0; iow < OW; iow++) { - for (int64_t iic = ith; iic < IC; iic += nth) { - - // micro kernel - ggml_fp16_t * dst_data = wdata + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] - const float * const src_data = (float *)((char *) src1->data + in*ofs0 + iic*ofs1); // [IH, IW] - - for (int64_t ikh = 0; ikh < KH; ikh++) { // 1 - for (int64_t ikw = 0; ikw < KW; ikw++) { - const int64_t iiw = iow*s0 + ikw*d0 - p0; - const int64_t iih = ioh*s1 + ikh*d1 - p1; - - if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { - dst_data[iic*(KH*KW) + ikh*KW + ikw] = 0; - } else { - dst_data[iic*(KH*KW) + ikh*KW + ikw] = GGML_FP32_TO_FP16(src_data[iih*IW + iiw]); - } - } - } - } - } - } - } - } -} - -static void ggml_compute_forward_im2col( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - switch (dst->type) { - case GGML_TYPE_F16: - { - ggml_compute_forward_im2col_f16(params, dst); - } break; - case GGML_TYPE_F32: - { - ggml_compute_forward_im2col_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_im2col_back_f32 - -static void ggml_compute_forward_im2col_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; // gradients of forward pass output - const struct ggml_tensor * src1 = dst->src[1]; // convolution kernel - - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - GGML_TENSOR_BINARY_OP_LOCALS; - - const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; - const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; - const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; - const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; - const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; - const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t N = is_2D ? ne3 : ne2; - const int64_t IC = is_2D ? ne2 : ne1; - const int64_t IH = is_2D ? ne1 : 1; - const int64_t IW = ne0; - - const int64_t KH = is_2D ? ne11 : 1; - const int64_t KW = ne10; - - const int64_t OH = is_2D ? ne02 : 1; - const int64_t OW = ne01; - - int ofs0 = is_2D ? nb3 : nb2; - int ofs1 = is_2D ? nb2 : nb1; - - GGML_ASSERT(nb0 == sizeof(float)); - - // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] - { - float * const wdata = (float *) dst->data; - - for (int64_t in = 0; in < N; in++) { - for (int64_t iic = ith; iic < IC; iic += nth) { - for (int64_t iih = 0; iih < IH; iih++) { - for (int64_t iiw = 0; iiw < IW; iiw++) { - - // micro kernel - float grad = 0.0f; - for (int64_t ikh = 0; ikh < KH; ikh++) { - for (int64_t ikw = 0; ikw < KW; ikw++) { - // For s0 > 1 some values were skipped over in the forward pass. - // These values have tmpw % s0 != 0 and need to be skipped in the backwards pass as well. - const int64_t tmpw = (iiw + p0 - ikw*d0); - if (tmpw % s0 != 0) { - continue; - } - const int64_t iow = tmpw / s0; - - // Equivalent logic as above except for s1. - int64_t ioh; - if (is_2D) { - const int64_t tmph = iih + p1 - ikh*d1; - - if (tmph % s1 != 0) { - continue; - } - - ioh = tmph / s1; - } else { - ioh = 0; - } - - if (iow < 0 || iow >= OW || ioh < 0 || ioh >= OH) { - continue; - } - - const float * const grad_in = (const float *) src0->data - + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] - grad += grad_in[iic*(KH*KW) + ikh*KW + ikw]; - } - } - float * dst_data = (float *)((char *) wdata + (in*ofs0 + iic*ofs1)); // [IH, IW] - dst_data[iih*IW + iiw] = grad; - } - } - } - } - } -} - -// ggml_compute_forward_conv_transpose_2d - -static void ggml_compute_forward_conv_transpose_2d( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - GGML_TENSOR_BINARY_OP_LOCALS - - const int ith = params->ith; - const int nth = params->nth; - - const int nk = ne00*ne01*ne02*ne03; - - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb10 == sizeof(float)); - - if (ith == 0) { - memset(params->wdata, 0, params->wsize); - - // permute kernel data (src0) from (Kw x Kh x Cout x Cin) to (Cin x Kw x Kh x Cout) - { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; - - for (int64_t i03 = 0; i03 < ne03; i03++) { - for (int64_t i02 = 0; i02 < ne02; i02++) { - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i03*nb03 + i02*nb02); - ggml_fp16_t * dst_data = wdata + i02*ne01*ne00*ne03; - for (int64_t i01 = 0; i01 < ne01; i01++) { - for (int64_t i00 = 0; i00 < ne00; i00++) { - dst_data[i01*ne00*ne03 + i00*ne03 + i03] = src[i01 * ne00 + i00]; - } - } - } - } - } - - // permute source data (src1) from (Sw x Sh x Cin) to (Cin x Sw x Sh) - { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + nk; - for (int i12 = 0; i12 < ne12; i12++) { - for (int i11 = 0; i11 < ne11; i11++) { - const float * const src = (float *)((char *) src1->data + i12*nb12 + i11*nb11); - ggml_fp16_t * dst_data = wdata + i11*ne10*ne12; - for (int i10 = 0; i10 < ne10; i10++) { - dst_data[i10*ne12 + i12] = GGML_FP32_TO_FP16(src[i10]); - } - } - } - } - - memset(dst->data, 0, ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - - const int32_t stride = ggml_get_op_params_i32(dst, 0); - - // total patches in dst - const int np = ne2; - - // patches per thread - const int dp = (np + nth - 1)/nth; - - // patch range for this thread - const int ip0 = dp*ith; - const int ip1 = MIN(ip0 + dp, np); - - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; - ggml_fp16_t * const wdata_src = wdata + nk; - - for (int i2 = ip0; i2 < ip1; i2++) { // Cout - float * dst_data = (float *)((char *) dst->data + i2*nb2); - ggml_fp16_t * wdata_kernel = wdata + i2*ne01*ne00*ne03; - for (int i11 = 0; i11 < ne11; i11++) { - for (int i10 = 0; i10 < ne10; i10++) { - const int i1n = i11*ne10*ne12 + i10*ne12; - for (int i01 = 0; i01 < ne01; i01++) { - for (int i00 = 0; i00 < ne00; i00++) { - float v = 0; - ggml_vec_dot_f16(ne03, &v, 0, - wdata_src + i1n, 0, - wdata_kernel + i01*ne00*ne03 + i00*ne03, 0, 1); - dst_data[(i11*stride + i01)*ne0 + i10*stride + i00] += v; - } - } - } - } - } -} - -// ggml_compute_forward_pool_1d_sk_p0 - -static void ggml_compute_forward_pool_1d_sk_p0( - const struct ggml_compute_params * params, - const enum ggml_op_pool op, - const int k, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src = dst->src[0]; - - assert(src->type == GGML_TYPE_F32 || src->type == GGML_TYPE_F16); - - if (params->ith != 0) { - return; - } - - const char * cdata = (const char *)src->data; - const char * const data_end = cdata + ggml_nbytes(src); - float * drow = (float *)dst->data; - - const int64_t rs = dst->ne[0]; - - while (cdata < data_end) { - const void * srow = (const void *)cdata; - int j = 0; - for (int64_t i = 0; i < rs; ++i) { - switch (op) { - case GGML_OP_POOL_AVG: drow[i] = 0; break; - case GGML_OP_POOL_MAX: drow[i] = -FLT_MAX; break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - for (int ki = 0; ki < k; ++ki) { - const float srow_j = (src->type == GGML_TYPE_F32) ? ((const float*)srow)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t*)srow)[j]); - switch (op) { - case GGML_OP_POOL_AVG: drow[i] += srow_j; break; - case GGML_OP_POOL_MAX: if (srow_j > drow[i]) drow[i] = srow_j; break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - ++j; - } - switch (op) { - case GGML_OP_POOL_AVG: drow[i] /= k; break; - case GGML_OP_POOL_MAX: break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - } - - cdata += src->nb[1]; - drow += rs; - } -} - -// ggml_compute_forward_pool_1d - -static void ggml_compute_forward_pool_1d( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const int32_t * opts = (const int32_t *)dst->op_params; - enum ggml_op_pool op = opts[0]; - const int k0 = opts[1]; - const int s0 = opts[2]; - const int p0 = opts[3]; - GGML_ASSERT(p0 == 0); // padding not supported - GGML_ASSERT(k0 == s0); // only s = k supported - - ggml_compute_forward_pool_1d_sk_p0(params, op, k0, dst); -} - -// ggml_compute_forward_pool_2d - -static void ggml_compute_forward_pool_2d( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src = dst->src[0]; - - assert(src->type == GGML_TYPE_F32 || src->type == GGML_TYPE_F16); - - if (params->ith != 0) { - return; - } - - const int32_t * opts = (const int32_t *)dst->op_params; - enum ggml_op_pool op = opts[0]; - const int k0 = opts[1]; - const int k1 = opts[2]; - const int s0 = opts[3]; - const int s1 = opts[4]; - const int p0 = opts[5]; - const int p1 = opts[6]; - const char * cdata = (const char*)src->data; - const char * const data_end = cdata + ggml_nbytes(src); - - const int64_t px = dst->ne[0]; - const int64_t py = dst->ne[1]; - const int64_t pa = px * py; - - float * dplane = (float *)dst->data; - - const int ka = k0 * k1; - const int offset0 = -p0; - const int offset1 = -p1; - - while (cdata < data_end) { - for (int oy = 0; oy < py; ++oy) { - float * const drow = dplane + oy * px; - for (int ox = 0; ox < px; ++ox) { - float * const out = drow + ox; - switch (op) { - case GGML_OP_POOL_AVG: *out = 0; break; - case GGML_OP_POOL_MAX: *out = -FLT_MAX; break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - - const int ix = offset0 + ox * s0; - const int iy = offset1 + oy * s1; - - for (int ky = 0; ky < k1; ++ky) { - if (iy + ky < 0 || iy + ky >= src->ne[1]) continue; - const void * srow = (const void *)(cdata + src->nb[1] * (iy + ky)); - for (int kx = 0; kx < k0; ++kx) { - int j = ix + kx; - if (j < 0 || j >= src->ne[0]) continue; - const float srow_j = (src->type == GGML_TYPE_F32) ? ((const float*)srow)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t*)srow)[j]); - switch (op) { - case GGML_OP_POOL_AVG: *out += srow_j; break; - case GGML_OP_POOL_MAX: if (srow_j > *out) *out = srow_j; break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - } - } - switch (op) { - case GGML_OP_POOL_AVG: *out /= ka; break; - case GGML_OP_POOL_MAX: break; - case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); - } - } - } - - cdata += src->nb[2]; - dplane += pa; - } -} - -// ggml_compute_forward_pool_2d_back - -static void ggml_compute_forward_pool_2d_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src = dst->src[0]; - const struct ggml_tensor * dstf = dst->src[1]; // forward tensor of dst - - assert(dst->type == GGML_TYPE_F32 || dst->type == GGML_TYPE_F16); - - if (params->ith != 0) { - return; - } - - const int32_t * opts = (const int32_t *)dst->op_params; - enum ggml_op_pool op = opts[0]; - const int k0 = opts[1]; - const int k1 = opts[2]; - const int s0 = opts[3]; - const int s1 = opts[4]; - const int p0 = opts[5]; - const int p1 = opts[6]; - - char * cdata = (char *) dst->data; - const char * cdataf = (const char *) dstf->data; - const char * const data_end = cdata + ggml_nbytes(dst); - - GGML_ASSERT(params->ith == 0); - memset(cdata, 0, ggml_nbytes(dst)); - - const int64_t px = src->ne[0]; - const int64_t py = src->ne[1]; - const int64_t pa = px * py; - - const float * splane = (const float *) src->data; - - const int ka = k0 * k1; - const int offset0 = -p0; - const int offset1 = -p1; - - while (cdata < data_end) { - for (int oy = 0; oy < py; ++oy) { - const float * const srow = splane + oy * px; - for (int ox = 0; ox < px; ++ox) { - const float grad0 = srow[ox]; - - const int ix = offset0 + ox * s0; - const int iy = offset1 + oy * s1; - - if (op == GGML_OP_POOL_MAX) { - float maxval = -FLT_MAX; - int kxmax = -1; - int kymax = -1; - - for (int ky = 0; ky < k1; ++ky) { - if (iy + ky < 0 || iy + ky >= dst->ne[1]) { - continue; - } - const void * drowf = (const void *)(cdataf + dst->nb[1] * (iy + ky)); - for (int kx = 0; kx < k0; ++kx) { - int j = ix + kx; - if (j < 0 || j >= dst->ne[0]) { - continue; - } - - const float val = dst->type == GGML_TYPE_F32 ? - ((const float *) drowf)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t *) drowf)[j]); - if (val <= maxval) { - continue; - } - - maxval = val; - kxmax = kx; - kymax = ky; - } - } - - if (kxmax == -1 || kymax == -1) { - continue; - } - - void * drow = (void *)(cdata + dst->nb[1] * (iy + kymax)); - const int j = ix + kxmax; - if (dst->type == GGML_TYPE_F32) { - ((float *) drow)[j] += grad0; - } else { - ((ggml_fp16_t *) drow)[j] = GGML_FP32_TO_FP16(grad0 + GGML_FP16_TO_FP32(((const ggml_fp16_t *) drow)[j])); - } - } else if (op == GGML_OP_POOL_AVG) { - const float grad = grad0 / ka; - - for (int ky = 0; ky < k1; ++ky) { - if (iy + ky < 0 || iy + ky >= dst->ne[1]) { - continue; - } - void * drow = (void *)(cdata + dst->nb[1] * (iy + ky)); - for (int kx = 0; kx < k0; ++kx) { - int j = ix + kx; - if (j < 0 || j >= dst->ne[0]) { - continue; - } - - if (dst->type == GGML_TYPE_F32) { - ((float *) drow)[j] += grad; - } else { - ((ggml_fp16_t *) drow)[j] += GGML_FP32_TO_FP16(grad); - } - } - } - } else { - GGML_ASSERT(false); - } - } - } - - cdata += dst->nb[2]; - cdataf += dst->nb[2]; - splane += pa; - } -} - -// ggml_compute_forward_upscale - -static void ggml_compute_forward_upscale_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - const float sf0 = (float)ne0/src0->ne[0]; - const float sf1 = (float)ne1/src0->ne[1]; - const float sf2 = (float)ne2/src0->ne[2]; - const float sf3 = (float)ne3/src0->ne[3]; - - // TODO: optimize - - for (int64_t i3 = 0; i3 < ne3; i3++) { - const int64_t i03 = i3 / sf3; - for (int64_t i2 = ith; i2 < ne2; i2 += nth) { - const int64_t i02 = i2 / sf2; - for (int64_t i1 = 0; i1 < ne1; i1++) { - const int64_t i01 = i1 / sf1; - for (int64_t i0 = 0; i0 < ne0; i0++) { - const int64_t i00 = i0 / sf0; - - const float * x = (float *)((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - float * y = (float *)((char *) dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); - - *y = *x; - } - } - } - } -} - -static void ggml_compute_forward_upscale( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_upscale_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - - -// ggml_compute_forward_pad - -static void ggml_compute_forward_pad_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - GGML_ASSERT( dst->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - float * dst_ptr = (float *) dst->data; - - // TODO: optimize - - for (int64_t i2 = 0; i2 < ne2; ++i2) { - for (int64_t i1 = ith; i1 < ne1; i1 += nth) { - for (int64_t i0 = 0; i0 < ne0; ++i0) { - for (int64_t i3 = 0; i3 < ne3; ++i3) { - const int64_t dst_idx = i3*(ne0*ne1*ne2) + i2*(ne0*ne1) + i1*ne0 + i0; - - const float * src_ptr = (const float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); - - if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { - dst_ptr[dst_idx] = *src_ptr; - } else { - dst_ptr[dst_idx] = 0; - } - } - } - } - } -} - -static void ggml_compute_forward_pad( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_pad_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_pad_reflect_1d - -static void ggml_compute_forward_pad_reflect_1d( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - const int ith = params->ith; - const int nth = params->nth; - - const int32_t * opts = (const int32_t *) dst->op_params; - const int p0 = opts[0]; - const int p1 = opts[1]; - - GGML_TENSOR_UNARY_OP_LOCALS - - for (int64_t i3 = 0; i3 < ne3; i3++) { - for (int64_t i2 = 0; i2 < ne2; i2++) { - for (int64_t i1 = ith; i1 < ne1; i1 += nth) { - float * left = (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + p0*nb0); - float * right = (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + (ne0-p1-1)*nb0); - - ggml_vec_cpy_f32(ne00, left, (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01)); - - for (int i0 = 1; i0 <= p0; i0++) { left[-i0] = left[i0]; } - for (int i0 = 1; i0 <= p1; i0++) { right[i0] = right[-i0]; } - } - } - } -} - -// ggml_compute_forward_arange - -static void ggml_compute_forward_arange_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - GGML_ASSERT(dst->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const float start = ggml_get_op_params_f32(dst, 0); - const float stop = ggml_get_op_params_f32(dst, 1); - const float step = ggml_get_op_params_f32(dst, 2); - - const int64_t steps = (int64_t) ceilf((stop - start) / step); - - GGML_ASSERT(ggml_nelements(dst) == steps); - - for (int64_t i = ith; i < steps; i+= nth) { - float value = start + step * i; - ((float *)dst->data)[i] = value; - } -} - -static void ggml_compute_forward_arange( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - switch (dst->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_arange_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -static void ggml_compute_forward_timestep_embedding_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_ASSERT(src0->nb[0] == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - GGML_TENSOR_UNARY_OP_LOCALS - - const int dim = ggml_get_op_params_i32(dst, 0); - const int max_period = ggml_get_op_params_i32(dst, 1); - - int half = dim / 2; - - for (int64_t i = 0; i < ne00; i++) { - float * embed_data = (float *)((char *) dst->data + i*nb1); - for (int64_t j = ith; j < half; j += nth) { - float timestep = ((float *)src0->data)[i]; - float freq = (float)expf(-logf(max_period) * j / half); - float arg = timestep * freq; - embed_data[j] = cosf(arg); - embed_data[j + half] = sinf(arg); - } - if (dim % 2 != 0 && ith == 0) { - embed_data[dim] = 0.f; - } - } -} - -static void ggml_compute_forward_timestep_embedding( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_timestep_embedding_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_argsort - -static void ggml_compute_forward_argsort_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_TENSOR_UNARY_OP_LOCALS - - GGML_ASSERT(nb0 == sizeof(float)); - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t nr = ggml_nrows(src0); - - enum ggml_sort_order order = (enum ggml_sort_order) ggml_get_op_params_i32(dst, 0); - - for (int64_t i = ith; i < nr; i += nth) { - int32_t * dst_data = (int32_t *)((char *) dst->data + i*nb1); - const float * src_data = (float *)((char *) src0->data + i*nb01); - - for (int64_t j = 0; j < ne0; j++) { - dst_data[j] = j; - } - - // C doesn't have a functional sort, so we do a bubble sort instead - for (int64_t j = 0; j < ne0; j++) { - for (int64_t k = j + 1; k < ne0; k++) { - if ((order == GGML_SORT_ORDER_ASC && src_data[dst_data[j]] > src_data[dst_data[k]]) || - (order == GGML_SORT_ORDER_DESC && src_data[dst_data[j]] < src_data[dst_data[k]])) { - int32_t tmp = dst_data[j]; - dst_data[j] = dst_data[k]; - dst_data[k] = tmp; - } - } - } - } -} - -static void ggml_compute_forward_argsort( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_argsort_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_flash_attn_ext - -static void ggml_compute_forward_flash_attn_ext_f16( - const struct ggml_compute_params * params, - const struct ggml_tensor * q, - const struct ggml_tensor * k, - const struct ggml_tensor * v, - const struct ggml_tensor * mask, - struct ggml_tensor * dst) { - - GGML_TENSOR_LOCALS(int64_t, neq, q, ne) - GGML_TENSOR_LOCALS(size_t, nbq, q, nb) - GGML_TENSOR_LOCALS(int64_t, nek, k, ne) - GGML_TENSOR_LOCALS(size_t, nbk, k, nb) - GGML_TENSOR_LOCALS(int64_t, nev, v, ne) - GGML_TENSOR_LOCALS(size_t, nbv, v, nb) - GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) - GGML_TENSOR_LOCALS(size_t, nb, dst, nb) - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t DK = nek0; - const int64_t DV = nev0; - const int64_t N = neq1; - - GGML_ASSERT(ne0 == DV); - GGML_ASSERT(ne2 == N); - - // input tensor rows must be contiguous - GGML_ASSERT(nbq0 == ggml_type_size(q->type)); - GGML_ASSERT(nbk0 == ggml_type_size(k->type)); - GGML_ASSERT(nbv0 == ggml_type_size(v->type)); - - GGML_ASSERT(neq0 == DK); - GGML_ASSERT(nek0 == DK); - GGML_ASSERT(nev0 == DV); - - GGML_ASSERT(neq1 == N); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - // broadcast factors - const int64_t rk2 = neq2/nek2; - const int64_t rk3 = neq3/nek3; - - const int64_t rv2 = neq2/nev2; - const int64_t rv3 = neq3/nev3; - - // parallelize by q rows using ggml_vec_dot_f32 - - // total rows in q - const int nr = neq1*neq2*neq3; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - float scale = 1.0f; - float max_bias = 0.0f; - float logit_softcap = 0.0f; - - memcpy(&scale, (float *) dst->op_params + 0, sizeof(float)); - memcpy(&max_bias, (float *) dst->op_params + 1, sizeof(float)); - memcpy(&logit_softcap, (float *) dst->op_params + 2, sizeof(float)); - - if (logit_softcap != 0) { - scale /= logit_softcap; - } - - const uint32_t n_head = neq2; - const uint32_t n_head_log2 = 1u << (uint32_t) floor(log2(n_head)); - - const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); - const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); - - enum ggml_type const k_vec_dot_type = type_traits_cpu[k->type].vec_dot_type; - ggml_from_float_t const q_to_vec_dot = type_traits_cpu[k_vec_dot_type].from_float; - ggml_vec_dot_t const kq_vec_dot = type_traits_cpu[k->type].vec_dot; - ggml_to_float_t const v_to_float = ggml_get_type_traits(v->type)->to_float; - - GGML_ASSERT(q_to_vec_dot && "fattn: unsupported K-type"); - GGML_ASSERT(v_to_float && "fattn: unsupported V-type"); - - // loop over n_batch and n_head - for (int ir = ir0; ir < ir1; ++ir) { - // q indices - const int iq3 = ir/(neq2*neq1); - const int iq2 = (ir - iq3*neq2*neq1)/neq1; - const int iq1 = (ir - iq3*neq2*neq1 - iq2*neq1); - - const uint32_t h = iq2; // head index - const float slope = (max_bias > 0.0f) ? h < n_head_log2 ? powf(m0, h + 1) : powf(m1, 2*(h - n_head_log2) + 1) : 1.0f; - - float S = 0.0f; // sum - float M = -INFINITY; // maximum KQ value - - float * VKQ32 = (float *) params->wdata + ith*(1*DK + 2*DV + CACHE_LINE_SIZE_F32); // FP32 VKQ accumulator - float * V32 = (VKQ32 + 1*DV); // (temporary) FP32 V buffer - ggml_fp16_t * VKQ16 = (ggml_fp16_t *) (VKQ32 + 1*DV); // (temporary) FP16 VKQ accumulator - ggml_fp16_t * Q_q = (ggml_fp16_t *) (VKQ32 + 2*DV); // (temporary) buffer for Q converted to quantized/FP16 - - if (v->type == GGML_TYPE_F16) { - memset(VKQ16, 0, DV*sizeof(ggml_fp16_t)); - } else { - memset(VKQ32, 0, DV*sizeof(float)); - } - - const ggml_fp16_t * mp = mask ? (ggml_fp16_t *)((char *) mask->data + iq1*mask->nb[1]) : NULL; - - // k indices - const int ik3 = iq3 / rk3; - const int ik2 = iq2 / rk2; - - // v indices - const int iv3 = iq3 / rv3; - const int iv2 = iq2 / rv2; - - const float * pq = (const float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)); - q_to_vec_dot(pq, Q_q, DK); - - // online softmax / attention - // loop over n_kv and n_head_kv - // ref: https://arxiv.org/pdf/2112.05682.pdf - for (int64_t ic = 0; ic < nek1; ++ic) { - const float mv = mp ? slope*GGML_FP16_TO_FP32(mp[ic]) : 0.0f; - if (mv == -INFINITY) { - continue; - } - - float s; // KQ value - - const char * k_data = (const char *) k->data + ( ic*nbk1 + ik2*nbk2 + ik3*nbk3); - kq_vec_dot(DK, &s, 0, k_data, 0, Q_q, 0, 1); - - s = s*scale; // scale KQ value - - if (logit_softcap != 0.0f) { - s = logit_softcap*tanhf(s); - } - - s += mv; // apply mask - - const float Mold = M; - - float ms = 1.0f; // upon new higher max val, scale VKQ and KQ sum with this value - float vs = 1.0f; // post-softmax KQ value, expf(s - M) - - const char * v_data = ((const char *) v->data + (ic*nbv1 + iv2*nbv2 + iv3*nbv3)); - - if (v->type == GGML_TYPE_F16) { - if (s > M) { - // s is new maximum, ms < 1.0f, vs == expf(s - s) == 1.0f - M = s; - ms = expf(Mold - M); - - // V = V*expf(Mold - M) - ggml_vec_scale_f16(DV, VKQ16, ms); - } else { - // no new maximum, ms == 1.0f, vs != 1.0f - vs = expf(s - M); - } - - // V += v*expf(s - M) - ggml_vec_mad_f16(DV, VKQ16, (const ggml_fp16_t *) v_data, vs); - } else { - if (s > M) { - // s is new maximum, ms < 1.0f, vs == expf(s - s) == 1.0f - M = s; - ms = expf(Mold - M); - - // V = V*expf(Mold - M) - ggml_vec_scale_f32(DV, VKQ32, ms); - } else { - // no new maximum, ms == 1.0f, vs != 1.0f - vs = expf(s - M); - } - - v_to_float(v_data, V32, DV); - - // V += v*expf(s - M) - ggml_vec_mad_f32(DV, VKQ32, V32, vs); - } - - S = S*ms + vs; // scale and increment sum with partial sum - } - - if (v->type == GGML_TYPE_F16) { - for (int64_t d = 0; d < DV; ++d) { - VKQ32[d] = GGML_FP16_TO_FP32(VKQ16[d]); - } - } - - // V /= S - const float S_inv = 1.0f/S; - ggml_vec_scale_f32(DV, VKQ32, S_inv); - - // dst indices - const int i1 = iq1; - const int i2 = iq2; - const int i3 = iq3; - - // original - //memcpy((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb3), V, nev0*sizeof(float)); - - // permute(0, 2, 1, 3) - memcpy((char *) dst->data + (i3*ne2*ne1 + i2 + i1*ne1)*nb1, VKQ32, nb1); - } -} - -static void ggml_compute_forward_flash_attn_ext( - const struct ggml_compute_params * params, - const struct ggml_tensor * q, - const struct ggml_tensor * k, - const struct ggml_tensor * v, - const struct ggml_tensor * mask, - struct ggml_tensor * dst) { - switch (dst->op_params[3]) { - case GGML_PREC_DEFAULT: - case GGML_PREC_F32: - { - // uses F32 accumulators - ggml_compute_forward_flash_attn_ext_f16(params, q, k, v, mask, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_flash_attn_back - -static void ggml_compute_forward_flash_attn_back_f32( - const struct ggml_compute_params * params, - const bool masked, - struct ggml_tensor * dst) { - - const struct ggml_tensor * q = dst->src[0]; - const struct ggml_tensor * k = dst->src[1]; - const struct ggml_tensor * v = dst->src[2]; - const struct ggml_tensor * d = dst->src[3]; - - GGML_TENSOR_LOCALS(int64_t, neq, q, ne) - GGML_TENSOR_LOCALS(size_t, nbq, q, nb) - GGML_TENSOR_LOCALS(int64_t, nek, k, ne) - GGML_TENSOR_LOCALS(size_t, nbk, k, nb) - GGML_TENSOR_LOCALS(int64_t, nev, v, ne) - GGML_TENSOR_LOCALS(size_t, nbv, v, nb) - GGML_TENSOR_LOCALS(int64_t, ned, d, ne) - GGML_TENSOR_LOCALS(size_t, nbd, d, nb) - GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) - GGML_TENSOR_LOCALS(size_t, nb, dst, nb) - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t D = neq0; - const int64_t N = neq1; - const int64_t P = nek1 - N; - const int64_t M = P + N; - - const int Mup = ggml_up(M, GGML_SOFT_MAX_UNROLL); - const int mxDM = MAX(D, Mup); - - // GGML_ASSERT(ne0 == D); - // GGML_ASSERT(ne1 == N); - GGML_ASSERT(P >= 0); - - GGML_ASSERT(nbq0 == sizeof(float)); - GGML_ASSERT(nbk0 == sizeof(float)); - GGML_ASSERT(nbv0 == sizeof(float)); - - GGML_ASSERT(neq0 == D); - GGML_ASSERT(nek0 == D); - GGML_ASSERT(nev1 == D); - GGML_ASSERT(ned0 == D); - - GGML_ASSERT(neq1 == N); - GGML_ASSERT(nek1 == N + P); - GGML_ASSERT(nev1 == D); - GGML_ASSERT(ned1 == N); - - // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); - - if (ith == 0) { - memset(dst->data, 0, nb0*ne0*ne1*ne2*ne3); - } - ggml_barrier(params->threadpool); - - const int64_t elem_q = ggml_nelements(q); - const int64_t elem_k = ggml_nelements(k); - - enum ggml_type result_type = dst->type; - GGML_ASSERT(ggml_blck_size(result_type) == 1); - const size_t tsize = ggml_type_size(result_type); - - const size_t offs_q = 0; - const size_t offs_k = offs_q + GGML_PAD(elem_q * tsize, GGML_MEM_ALIGN); - const size_t offs_v = offs_k + GGML_PAD(elem_k * tsize, GGML_MEM_ALIGN); - - void * grad_q = (char *) dst->data; - void * grad_k = (char *) dst->data + offs_k; - void * grad_v = (char *) dst->data + offs_v; - - const size_t nbgq1 = nb0*neq0; - const size_t nbgq2 = nb0*neq0*neq1; - const size_t nbgq3 = nb0*neq0*neq1*neq2; - - const size_t nbgk1 = nb0*nek0; - const size_t nbgk2 = nb0*nek0*nek1; - const size_t nbgk3 = nb0*nek0*nek1*neq2; - - const size_t nbgv1 = nb0*nev0; - const size_t nbgv2 = nb0*nev0*nev1; - const size_t nbgv3 = nb0*nev0*nev1*neq2; - - // parallelize by k rows using ggml_vec_dot_f32 - - // total rows in k - const int nr = nek2*nek3; - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - - const float scale = 1.0f/sqrtf(D); - - //printf("P=%d N=%d D=%d ir0=%d ir1=%d scale = %f\n", P, N, D, ir0, ir1, scale); - - // how often k2 (and v2) is repeated in q2 - int nrep = neq2/nek2; - - for (int ir = ir0; ir < ir1; ++ir) { - // q indices - const int ik3 = ir/(nek2); - const int ik2 = ir - ik3*nek2; - - const int iq3 = ik3; - const int id3 = ik3; - const int iv3 = ik3; - const int iv2 = ik2; - - for (int irep = 0; irep < nrep; ++irep) { - const int iq2 = ik2 + irep*nek2; - const int id2 = iq2; - - // (ik2 + irep*nek2) % nek2 == ik2 - for (int iq1 = 0; iq1 < neq1; ++iq1) { - const int id1 = iq1; - - // not sure about CACHE_LINE_SIZE_F32.. - // - maybe it must not be multiplied by 2 and excluded from .. in SM 1*(..) offset? - float * S = (float *) params->wdata + ith*2*(mxDM + CACHE_LINE_SIZE_F32) + 0*(mxDM+CACHE_LINE_SIZE_F32); - float * SM = (float *) params->wdata + ith*2*(mxDM + CACHE_LINE_SIZE_F32) + 1*(mxDM+CACHE_LINE_SIZE_F32); - - for (int i = M; i < Mup; ++i) { - S[i] = -INFINITY; - } - - const int64_t masked_begin = masked ? (P + iq1 + 1) : M; - for (int64_t ic = 0; ic < masked_begin; ++ic) { - // k indices - const int ik1 = ic; - - // S indices - const int i1 = ik1; - - ggml_vec_dot_f32(neq0, - S + i1, 0, - (float *) ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), 0, - (float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)), 0, 1); - } - - // scale - ggml_vec_scale_f32(masked_begin, S, scale); - - for (int64_t i = masked_begin; i < M; i++) { - S[i] = -INFINITY; - } - - // softmax - // exclude known -INF S[..] values from max and loop - // dont forget to set their SM values to zero - { - float max = -INFINITY; - ggml_vec_max_f32(masked_begin, &max, S); - - ggml_float sum = 0.0; - { -#ifdef GGML_SOFT_MAX_ACCELERATE - max = -max; - vDSP_vsadd(SM, 1, &max, SM, 1, Mup); - vvexpf(SM, SM, &Mup); - ggml_vec_sum_f32(Mup, &sum, SM); -#else - sum = ggml_vec_soft_max_f32(Mup, SM, S, max); -#endif - } - - assert(sum > 0.0); - - sum = 1.0/sum; - ggml_vec_scale_f32(masked_begin, SM, sum); - - } - - // step-by-step explanation - { - // forward-process shape grads from backward process - // parallel_for ik2,ik3: - // for irep: - // iq2 = ik2 + irep*nek2 - // k[:D,:M,:,:] [D,M,:,:] grad[k][:D,:M,ik2,ik3] += grad[kcur] - // q[:D,:N,:,:] [D,N,:,:] grad[q][:D,iq1,iq2,iq3] += grad[qcur] - // v[:M,:D,:,:] [M,D,:,:] grad[v][:M,:D,iv2,iv3] += grad[vcur] - // for iq1: - // kcur = k[:D,:M,ik2,ik3] [D,M,1,1] grad[kcur] = grad[S1].T @ qcur - // qcur = q[:D,iq1,iq2,iq3] [D,1,1,1] grad[qcur] = grad[S1] @ kcur - // vcur = v[:M,:D,iv2,iv3] [M,D,1,1] grad[vcur] = grad[S5].T @ S4 - // S0 = -Inf [D,1,1,1] - // ~S1[i] = dot(kcur[:D,i], qcur) - // S1 = qcur @ kcur.T [M,1,1,1] grad[S1] = grad[S2] * scale - // S2 = S1 * scale [M,1,1,1] grad[S2] = diag_mask_zero(grad[S3], P) - // S3 = diag_mask_inf(S2, P) [M,1,1,1] grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) - // S4 = softmax(S3) [M,1,1,1] grad[S4] = grad[S5] @ vcur - // ~S5[i] = dot(vcur[:,i], S4) - // S5 = S4 @ vcur.T [D,1,1,1] grad[S5] = d[:D,id1,id2,id3] - // ~dst[i,iq1,iq2,iq3] = S5[i] ^ - // dst[:D,iq1,iq2,iq3] = S5 | grad[dst[:D,iq1,iq2,iq3]] = d[:D,id1,id2,id3] - // dst backward-/ grad[dst] = d - // - // output gradients with their dependencies: - // - // grad[kcur] = grad[S1].T @ qcur - // grad[S1] = diag_mask_zero(grad[S3], P) * scale - // grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) - // grad[S4] = grad[S5] @ vcur - // grad[S4] = d[:D,id1,id2,id3] @ vcur - // grad[qcur] = grad[S1] @ kcur - // grad[vcur] = grad[S5].T @ S4 - // grad[vcur] = d[:D,id1,id2,id3].T @ S4 - // - // in post-order: - // - // S1 = qcur @ kcur.T - // S2 = S1 * scale - // S3 = diag_mask_inf(S2, P) - // S4 = softmax(S3) - // grad[S4] = d[:D,id1,id2,id3] @ vcur - // grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) - // grad[S1] = diag_mask_zero(grad[S3], P) * scale - // grad[qcur] = grad[S1] @ kcur - // grad[kcur] = grad[S1].T @ qcur - // grad[vcur] = d[:D,id1,id2,id3].T @ S4 - // - // using less variables (SM=S4): - // - // S = diag_mask_inf(qcur @ kcur.T * scale, P) - // SM = softmax(S) - // S = d[:D,iq1,iq2,iq3] @ vcur - // dot_SM_gradSM = dot(SM, S) - // S = SM * (S - dot(SM, S)) - // S = diag_mask_zero(S, P) * scale - // - // grad[q][:D,iq1,iq2,iq3] += S @ kcur - // grad[k][:D,:M,ik2,ik3] += S.T @ qcur - // grad[v][:M,:D,iv2,iv3] += d[:D,id1,id2,id3].T @ SM + switch (tensor->type) { + case GGML_TYPE_I8: + { + assert(tensor->nb[0] == sizeof(int8_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); } - - // S = gradSM = d[:D,id1,id2,id3] @ vcur[:,:,iv2,iv3] - // S = d[:D,id1,id2,id3] @ vcur[:,:,iv2,iv3] - // for ic: - // S[:M] += vcur[:M,ic,iv2,iv3] * d[ic,id1,id2,id3] - // exclude known future zero S[..] values from operation - ggml_vec_set_f32(masked_begin, S, 0); - for (int64_t ic = 0; ic < D; ++ic) { - ggml_vec_mad_f32(masked_begin, - S, - (float *) ((char *) v->data + ( ic*nbv1 + iv2*nbv2 + iv3*nbv3)), - *(float *) ((char *) d->data + (ic*nbd0 + id1*nbd1 + id2*nbd2 + id3*nbd3))); + } break; + case GGML_TYPE_I16: + { + assert(tensor->nb[0] == sizeof(int16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); } - - // S = SM * (S - dot(SM, S)) - float dot_SM_gradSM = 0; - ggml_vec_dot_f32 (masked_begin, &dot_SM_gradSM, 0, SM, 0, S, 0, 1); - ggml_vec_acc1_f32(M, S, -dot_SM_gradSM); - ggml_vec_mul_f32 (masked_begin, S, S, SM); - - // S = diag_mask_zero(S, P) * scale - // already done by above ggml_vec_set_f32 - - // exclude known zero S[..] values from operation - ggml_vec_scale_f32(masked_begin, S, scale); - - // S shape [M,1] - // SM shape [M,1] - // kcur shape [D,M] - // qcur shape [D,1] - // vcur shape [M,D] - - // grad[q][:D,iq1,iq2,iq3] += S @ kcur - // grad[q][:D,iq1,iq2,iq3] += shape[M,1] @ shape[D,M] - // for ic: - // grad[q][:D,iq1,iq2,iq3] += S[ic] * kcur[:D,ic,ik2,ik3] - // exclude known zero S[..] values from loop - for (int64_t ic = 0; ic < masked_begin; ++ic) { - ggml_vec_mad_f32(D, - (float *) ((char *) grad_q + (iq1*nbgq1 + iq2*nbgq2 + iq3*nbgq3)), - (float *) ((char *) k->data + (ic*nbk1 + ik2*nbk2 + ik3*nbk3)), - S[ic]); + } break; + case GGML_TYPE_I32: + { + assert(tensor->nb[0] == sizeof(int32_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); } - - // grad[k][:D,:M,iq2,iq3] += S.T @ qcur - // for ic: - // grad[k][:D,ic,iq2,iq3] += S.T[0,ic] * qcur[:D,0] - // grad[k][:D,ic,iq2,iq3] += S[ic] * qcur[:D,0] - // exclude known zero S[..] values from loop - for (int64_t ic = 0; ic < masked_begin; ++ic) { - ggml_vec_mad_f32(D, - (float *) ((char *) grad_k + (ic*nbgk1 + ik2*nbgk2 + ik3*nbgk3)), - (float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)), - S[ic]); + } break; + case GGML_TYPE_F16: + { + assert(tensor->nb[0] == sizeof(ggml_fp16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), GGML_FP32_TO_FP16(value)); } - - // grad[v][:M,:D,iv2,iv3] += d[:D,id1,id2,id3].T @ SM - // for ic: - // grad[v][:M,ic,iv2,iv3] += d[:D,id1,id2,id3].T[0,ic] * SM[:M] - // grad[v][:M,ic,iv2,iv3] += d[ic,id1,id2,id3] * SM[:M] - // exclude known zero SM[..] values from mad - for (int64_t ic = 0; ic < D; ++ic) { - ggml_vec_mad_f32(masked_begin, - (float *) ((char *) grad_v + ( ic*nbgv1 + iv2*nbgv2 + iv3*nbgv3)), - SM, - *(float *) ((char *) d->data + (ic*nbd0 + id1*nbd1 + id2*nbd2 + id3*nbd3))); + } break; + case GGML_TYPE_BF16: + { + assert(tensor->nb[0] == sizeof(ggml_fp16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_bf16(nc, (ggml_bf16_t *)(data + i*n1), GGML_FP32_TO_BF16(value)); } - } - } - } -} - -static void ggml_compute_forward_flash_attn_back( - const struct ggml_compute_params * params, - const bool masked, - struct ggml_tensor * dst) { - - const struct ggml_tensor * q = dst->src[0]; - - switch (q->type) { + } break; case GGML_TYPE_F32: { - ggml_compute_forward_flash_attn_back_f32(params, masked, dst); + assert(tensor->nb[0] == sizeof(float)); + for (int i = 0; i < n; i++) { + ggml_vec_set_f32(nc, (float *)(data + i*n1), value); + } } break; default: { GGML_ABORT("fatal error"); } } -} -// ggml_compute_forward_ssm_conv + return tensor; +} -static void ggml_compute_forward_ssm_conv_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const struct ggml_tensor * src0 = dst->src[0]; // conv_x - const struct ggml_tensor * src1 = dst->src[1]; // conv1d.weight +struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value) { + const int n = ggml_nrows(tensor); + const int nc = tensor->ne[0]; + const size_t n1 = tensor->nb[1]; - const int ith = params->ith; - const int nth = params->nth; + char * const data = tensor->data; - const int nc = src1->ne[0]; // d_conv - const int ncs = src0->ne[0]; // d_conv - 1 + n_t - const int nr = src0->ne[1]; // d_inner - const int n_t = dst->ne[1]; // tokens per sequence - const int n_s = dst->ne[2]; // number of sequences in the batch - - GGML_ASSERT( dst->ne[0] == nr); - GGML_ASSERT(src0->nb[0] == sizeof(float)); - GGML_ASSERT(src1->nb[0] == sizeof(float)); - GGML_ASSERT(src0->nb[1] == src0->ne[0]*sizeof(float)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - const int ir = ir1 - ir0; - - for (int i3 = 0; i3 < n_s; ++i3) { - for (int i2 = 0; i2 < n_t; ++i2) { - // {d_conv - 1 + n_t, d_inner, n_seqs} - // sliding window - const float * s = (const float *) ((const char *) src0->data + ir0*(src0->nb[1]) + i2*(src0->nb[0]) + i3*(src0->nb[2])); // {d_conv, d_inner, n_s} - const float * c = (const float *) ((const char *) src1->data + ir0*(src1->nb[1])); // {d_conv, d_inner} - float * x = (float *) ((char *) dst->data + ir0*(dst->nb[0]) + i2*(dst->nb[1]) + i3*(dst->nb[2])); // {d_inner, n_t, n_s} - - // TODO: transpose the output for smaller strides for big batches? - // d_inner - for (int i1 = 0; i1 < ir; ++i1) { - // rowwise dot product - // NOTE: not using ggml_vec_dot_f32, because its sum is in double precision - float sumf = 0.0f; - - // d_conv - for (int i0 = 0; i0 < nc; ++i0) { - sumf += s[i0 + i1*ncs] * c[i0 + i1*nc]; + switch (tensor->type) { + case GGML_TYPE_I8: + { + assert(tensor->nb[0] == sizeof(int8_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); } - x[i1] = sumf; - } - } - } -} - -static void ggml_compute_forward_ssm_conv( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - switch (dst->src[0]->type) { - case GGML_TYPE_F32: + } break; + case GGML_TYPE_I16: { - ggml_compute_forward_ssm_conv_f32(params, dst); + assert(tensor->nb[0] == sizeof(int16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); + } } break; - default: + case GGML_TYPE_I32: { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_ssm_scan - -static void ggml_compute_forward_ssm_scan_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const struct ggml_tensor * src0 = dst->src[0]; // s - const struct ggml_tensor * src1 = dst->src[1]; // x - const struct ggml_tensor * src2 = dst->src[2]; // dt - const struct ggml_tensor * src3 = dst->src[3]; // A - const struct ggml_tensor * src4 = dst->src[4]; // B - const struct ggml_tensor * src5 = dst->src[5]; // C - - const int ith = params->ith; - const int nth = params->nth; - - const int64_t nc = src0->ne[0]; // d_state - const int64_t nr = src0->ne[1]; // d_inner - const int64_t n_t = src1->ne[1]; // number of tokens per sequence - const int64_t n_s = src0->ne[2]; // number of sequences in the batch - - GGML_ASSERT(ggml_nelements(src1) + ggml_nelements(src0) == ggml_nelements(dst)); - GGML_ASSERT(src0->nb[0] == sizeof(float)); - GGML_ASSERT(src1->nb[0] == sizeof(float)); - GGML_ASSERT(src2->nb[0] == sizeof(float)); - GGML_ASSERT(src3->nb[0] == sizeof(float)); - GGML_ASSERT(src4->nb[0] == sizeof(float)); - GGML_ASSERT(src5->nb[0] == sizeof(float)); - // required for the dot product between s and C - GGML_ASSERT(src0->nb[1] == src0->ne[0]*sizeof(float)); - // required for per-sequence offsets for states - GGML_ASSERT(src0->nb[2] == src0->ne[0]*src0->ne[1]*sizeof(float)); - // required to get correct offset for state destination (i.e. src1->nb[3]) - GGML_ASSERT(src1->nb[3] == src1->ne[0]*src1->ne[1]*src1->ne[2]*sizeof(float)); - - // rows per thread - const int dr = (nr + nth - 1)/nth; - - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); - const int ir = ir1 - ir0; - - for (int i3 = 0; i3 < n_s; ++i3) { - for (int i2 = 0; i2 < n_t; ++i2) { - const float * s0 = (const float *) ((const char *) src0->data + ir0*(src0->nb[1]) + i3*(src0->nb[2])); // {d_state, d_inner, n_s} - const float * x = (const float *) ((const char *) src1->data + ir0*(src1->nb[0]) + i2*(src1->nb[1]) + i3*(src1->nb[2])); // {d_inner, n_t, n_s} - const float * dt = (const float *) ((const char *) src2->data + ir0*(src2->nb[0]) + i2*(src2->nb[1]) + i3*(src2->nb[2])); // {d_inner, n_t, n_s} - const float * A = (const float *) ((const char *) src3->data + ir0*(src3->nb[1])); // {d_state, d_inner} - const float * B = (const float *) ((const char *) src4->data + i2*(src4->nb[1]) + i3*(src4->nb[2])); // {d_state, n_t, n_s} - const float * C = (const float *) ((const char *) src5->data + i2*(src5->nb[1]) + i3*(src5->nb[2])); // {d_state, n_t, n_s} - float * y = ( float *) (( char *) dst->data + ir0*(src1->nb[0]) + i2*(src1->nb[1]) + i3*(src1->nb[2])); // {d_inner, n_t, n_s} - float * s = ( float *) (( char *) dst->data + ir0*(src0->nb[1]) + i3*(src0->nb[2]) + src1->nb[3]); // {d_state, d_inner, n_s} - - // use the output as the source for the next token-wise iterations - if (i2 > 0) { s0 = s; } - - // d_inner - for (int i1 = 0; i1 < ir; ++i1) { - // ref: https://github.com/state-spaces/mamba/blob/34076d664838588a3c97727b263478ab9f621a07/mamba_ssm/ops/triton/selective_state_update.py#L78 - float dt_soft_plus = dt[i1] <= 20.0f ? log1pf(expf(dt[i1])) : dt[i1]; - float x_dt = x[i1] * dt_soft_plus; - float sumf = 0.0f; - // d_state - for (int i0 = 0; i0 < nc; ++i0) { - int i = i0 + i1*nc; - // state = prev_state * dA + dB * x - float state = (s0[i] * expf(dt_soft_plus * A[i])) + (B[i0] * x_dt); - // y = rowwise_dotprod(state, C) - sumf += state * C[i0]; - s[i] = state; + assert(tensor->nb[0] == sizeof(int32_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); } - y[i1] = sumf; - } - } - } -} - -static void ggml_compute_forward_ssm_scan( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - switch (dst->src[0]->type) { - case GGML_TYPE_F32: + } break; + case GGML_TYPE_F16: { - ggml_compute_forward_ssm_scan_f32(params, dst); + assert(tensor->nb[0] == sizeof(ggml_fp16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), GGML_FP32_TO_FP16(value)); + } } break; - default: + case GGML_TYPE_BF16: { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_win_part - -static void ggml_compute_forward_win_part_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - UNUSED(params); - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) - GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) - - const int32_t nep0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t nep1 = ((const int32_t *)(dst->op_params))[1]; - const int32_t w = ((const int32_t *)(dst->op_params))[2]; - - assert(ne00 == ne0); - assert(ne3 == nep0*nep1); - - // TODO: optimize / multi-thread - for (int py = 0; py < nep1; ++py) { - for (int px = 0; px < nep0; ++px) { - const int64_t i3 = py*nep0 + px; - for (int64_t i2 = 0; i2 < ne2; ++i2) { - for (int64_t i1 = 0; i1 < ne1; ++i1) { - for (int64_t i0 = 0; i0 < ne0; ++i0) { - const int64_t i02 = py*w + i2; - const int64_t i01 = px*w + i1; - const int64_t i00 = i0; - - const int64_t i = i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0 + i0; - const int64_t j = i02*ne01*ne00 + i01*ne00 + i00; - - if (py*w + i2 >= ne02 || px*w + i1 >= ne01) { - ((float *) dst->data)[i] = 0.0f; - } else { - ((float *) dst->data)[i] = ((float *) src0->data)[j]; - } - } + assert(tensor->nb[0] == sizeof(ggml_bf16_t)); + for (int i = 0; i < n; i++) { + ggml_vec_set_bf16(nc, (ggml_bf16_t *)(data + i*n1), GGML_FP32_TO_BF16(value)); } - } - } - } -} - -static void ggml_compute_forward_win_part( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { + } break; case GGML_TYPE_F32: { - ggml_compute_forward_win_part_f32(params, dst); + assert(tensor->nb[0] == sizeof(float)); + for (int i = 0; i < n; i++) { + ggml_vec_set_f32(nc, (float *)(data + i*n1), value); + } } break; default: { GGML_ABORT("fatal error"); } } -} - -// ggml_compute_forward_win_unpart - -static void ggml_compute_forward_win_unpart_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - UNUSED(params); - - const struct ggml_tensor * src0 = dst->src[0]; - - GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) - GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) - - const int32_t w = ((const int32_t *)(dst->op_params))[0]; - - // padding - const int px = (w - ne1%w)%w; - //const int py = (w - ne2%w)%w; - - const int npx = (px + ne1)/w; - //const int npy = (py + ne2)/w; - - assert(ne0 == ne00); - // TODO: optimize / multi-thread - for (int64_t i2 = 0; i2 < ne2; ++i2) { - for (int64_t i1 = 0; i1 < ne1; ++i1) { - for (int64_t i0 = 0; i0 < ne0; ++i0) { - const int ip2 = i2/w; - const int ip1 = i1/w; - - const int64_t i02 = i2%w; - const int64_t i01 = i1%w; - const int64_t i00 = i0; - - const int64_t i = (ip2*npx + ip1)*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00 + i00; - const int64_t j = i2*ne1*ne0 + i1*ne0 + i0; - - ((float *) dst->data)[j] = ((float *) src0->data)[i]; - } - } - } + return tensor; } -static void ggml_compute_forward_win_unpart( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { +int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i) { + if (!ggml_is_contiguous(tensor)) { + int64_t id[4] = { 0, 0, 0, 0 }; + ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); + return ggml_get_i32_nd(tensor, id[0], id[1], id[2], id[3]); + } + switch (tensor->type) { + case GGML_TYPE_I8: + { + GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + return ((int8_t *)(tensor->data))[i]; + } + case GGML_TYPE_I16: + { + GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + return ((int16_t *)(tensor->data))[i]; + } + case GGML_TYPE_I32: + { + GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + return ((int32_t *)(tensor->data))[i]; + } + case GGML_TYPE_F16: + { + GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); + return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); + } + case GGML_TYPE_BF16: + { + GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); + return GGML_BF16_TO_FP32(((ggml_bf16_t *)(tensor->data))[i]); + } case GGML_TYPE_F32: { - ggml_compute_forward_win_unpart_f32(params, dst); - } break; + GGML_ASSERT(tensor->nb[0] == sizeof(float)); + return ((float *)(tensor->data))[i]; + } default: { GGML_ABORT("fatal error"); @@ -11113,70 +939,97 @@ static void ggml_compute_forward_win_unpart( } } -//gmml_compute_forward_unary - -static void ggml_compute_forward_unary( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const enum ggml_unary_op op = ggml_get_unary_op(dst); - - switch (op) { - case GGML_UNARY_OP_ABS: - { - ggml_compute_forward_abs(params, dst); - } break; - case GGML_UNARY_OP_SGN: +void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value) { + if (!ggml_is_contiguous(tensor)) { + int64_t id[4] = { 0, 0, 0, 0 }; + ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); + ggml_set_i32_nd(tensor, id[0], id[1], id[2], id[3], value); + return; + } + switch (tensor->type) { + case GGML_TYPE_I8: { - ggml_compute_forward_sgn(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + ((int8_t *)(tensor->data))[i] = value; } break; - case GGML_UNARY_OP_NEG: + case GGML_TYPE_I16: { - ggml_compute_forward_neg(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + ((int16_t *)(tensor->data))[i] = value; } break; - case GGML_UNARY_OP_STEP: + case GGML_TYPE_I32: { - ggml_compute_forward_step(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + ((int32_t *)(tensor->data))[i] = value; } break; - case GGML_UNARY_OP_TANH: + case GGML_TYPE_F16: { - ggml_compute_forward_tanh(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); + ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); } break; - case GGML_UNARY_OP_ELU: + case GGML_TYPE_BF16: { - ggml_compute_forward_elu(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(ggml_bf16_t)); + ((ggml_bf16_t *)(tensor->data))[i] = GGML_FP32_TO_BF16(value); } break; - case GGML_UNARY_OP_RELU: + case GGML_TYPE_F32: { - ggml_compute_forward_relu(params, dst); + GGML_ASSERT(tensor->nb[0] == sizeof(float)); + ((float *)(tensor->data))[i] = value; } break; - case GGML_UNARY_OP_SIGMOID: + default: { - ggml_compute_forward_sigmoid(params, dst); - } break; - case GGML_UNARY_OP_GELU: + GGML_ABORT("fatal error"); + } + } +} + +int32_t ggml_get_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3) { + void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; + switch (tensor->type) { + case GGML_TYPE_I8: + return ((int8_t *) data)[0]; + case GGML_TYPE_I16: + return ((int16_t *) data)[0]; + case GGML_TYPE_I32: + return ((int32_t *) data)[0]; + case GGML_TYPE_F16: + return GGML_FP16_TO_FP32(((ggml_fp16_t *) data)[0]); + case GGML_TYPE_BF16: + return GGML_BF16_TO_FP32(((ggml_bf16_t *) data)[0]); + case GGML_TYPE_F32: + return ((float *) data)[0]; + default: + GGML_ABORT("fatal error"); + } +} + +void ggml_set_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, int32_t value) { + void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; + switch (tensor->type) { + case GGML_TYPE_I8: { - ggml_compute_forward_gelu(params, dst); + ((int8_t *)(data))[0] = value; } break; - case GGML_UNARY_OP_GELU_QUICK: + case GGML_TYPE_I16: { - ggml_compute_forward_gelu_quick(params, dst); + ((int16_t *)(data))[0] = value; } break; - case GGML_UNARY_OP_SILU: + case GGML_TYPE_I32: { - ggml_compute_forward_silu(params, dst); + ((int32_t *)(data))[0] = value; } break; - case GGML_UNARY_OP_HARDSWISH: + case GGML_TYPE_F16: { - ggml_compute_forward_hardswish(params, dst); + ((ggml_fp16_t *)(data))[0] = GGML_FP32_TO_FP16(value); } break; - case GGML_UNARY_OP_HARDSIGMOID: + case GGML_TYPE_BF16: { - ggml_compute_forward_hardsigmoid(params, dst); + ((ggml_bf16_t *)(data))[0] = GGML_FP32_TO_BF16(value); } break; - case GGML_UNARY_OP_EXP: + case GGML_TYPE_F32: { - ggml_compute_forward_exp(params, dst); + ((float *)(data))[0] = value; } break; default: { @@ -11185,46 +1038,37 @@ static void ggml_compute_forward_unary( } } -// ggml_compute_forward_get_rel_pos - -static void ggml_compute_forward_get_rel_pos_f16( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - UNUSED(params); - - const struct ggml_tensor * src0 = dst->src[0]; - - // ref: https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/modeling/image_encoder.py#L292-L322 - - GGML_TENSOR_UNARY_OP_LOCALS - - const int64_t w = ne1; - - ggml_fp16_t * src0_data = (ggml_fp16_t *) src0->data; - ggml_fp16_t * dst_data = (ggml_fp16_t *) dst->data; - - for (int64_t i2 = 0; i2 < ne2; ++i2) { - for (int64_t i1 = 0; i1 < ne1; ++i1) { - const int64_t pos = (w - i1 - 1) + i2; - for (int64_t i0 = 0; i0 < ne0; ++i0) { - dst_data[i2*ne1*ne0 + i1*ne0 + i0] = src0_data[pos*ne00 + i0]; - } - } +float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i) { + if (!ggml_is_contiguous(tensor)) { + int64_t id[4] = { 0, 0, 0, 0 }; + ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); + return ggml_get_f32_nd(tensor, id[0], id[1], id[2], id[3]); } -} - -static void ggml_compute_forward_get_rel_pos( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { + switch (tensor->type) { + case GGML_TYPE_I8: + { + return ((int8_t *)(tensor->data))[i]; + } + case GGML_TYPE_I16: + { + return ((int16_t *)(tensor->data))[i]; + } + case GGML_TYPE_I32: + { + return ((int32_t *)(tensor->data))[i]; + } case GGML_TYPE_F16: + { + return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); + } case GGML_TYPE_BF16: { - ggml_compute_forward_get_rel_pos_f16(params, dst); - } break; + return GGML_BF16_TO_FP32(((ggml_bf16_t *)(tensor->data))[i]); + } + case GGML_TYPE_F32: + { + return ((float *)(tensor->data))[i]; + } default: { GGML_ABORT("fatal error"); @@ -11232,79 +1076,37 @@ static void ggml_compute_forward_get_rel_pos( } } -// ggml_compute_forward_add_rel_pos - -static void ggml_compute_forward_add_rel_pos_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; - const struct ggml_tensor * src2 = dst->src[2]; - - const bool inplace = (bool) ((int32_t *) dst->op_params)[0]; - if (!inplace) { - if (params->ith == 0) { - memcpy((char *) dst->data, (char *) src0->data, ggml_nbytes(dst)); - } - ggml_barrier(params->threadpool); - } - // ref: https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/modeling/image_encoder.py#L357-L359 - - float * src1_data = (float *) src1->data; - float * src2_data = (float *) src2->data; - float * dst_data = (float *) dst->data; - - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - const int64_t ne12 = src1->ne[2]; - const int64_t ne13 = src1->ne[3]; - - const int ith = params->ith; - const int nth = params->nth; - - // total patches in dst - const int np = ne13; - - // patches per thread - const int dp = (np + nth - 1)/nth; - - // patch range for this thread - const int ip0 = dp*ith; - const int ip1 = MIN(ip0 + dp, np); - - for (int64_t i13 = ip0; i13 < ip1; ++i13) { - for (int64_t i12 = 0; i12 < ne12; ++i12) { - for (int64_t i11 = 0; i11 < ne11; ++i11) { - const int64_t jp1 = i13*ne12*ne11*ne10 + i12*ne11*ne10 + i11*ne10; - for (int64_t i10 = 0; i10 < ne10; ++i10) { - const int64_t jp0 = jp1 + i10; - const float src1_e = src1_data[jp0]; - const float src2_e = src2_data[jp0]; - - const int64_t jdh = jp0 * ne10; - const int64_t jdw = jdh - (ne10 - 1) * i10; - - for (int64_t j = 0; j < ne10; ++j) { - dst_data[jdh + j ] += src2_e; - dst_data[jdw + j*ne10] += src1_e; - } - } - } - } +void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value) { + if (!ggml_is_contiguous(tensor)) { + int64_t id[4] = { 0, 0, 0, 0 }; + ggml_unravel_index(tensor, i, &id[0], &id[1], &id[2], &id[3]); + ggml_set_f32_nd(tensor, id[0], id[1], id[2], id[3], value); + return; } -} - -static void ggml_compute_forward_add_rel_pos( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { + switch (tensor->type) { + case GGML_TYPE_I8: + { + ((int8_t *)(tensor->data))[i] = value; + } break; + case GGML_TYPE_I16: + { + ((int16_t *)(tensor->data))[i] = value; + } break; + case GGML_TYPE_I32: + { + ((int32_t *)(tensor->data))[i] = value; + } break; + case GGML_TYPE_F16: + { + ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); + } break; + case GGML_TYPE_BF16: + { + ((ggml_bf16_t *)(tensor->data))[i] = GGML_FP32_TO_BF16(value); + } break; case GGML_TYPE_F32: { - ggml_compute_forward_add_rel_pos_f32(params, dst); + ((float *)(tensor->data))[i] = value; } break; default: { @@ -11313,200 +1115,52 @@ static void ggml_compute_forward_add_rel_pos( } } -// ggml_compute_forward_rwkv_wkv6 - -static void ggml_compute_forward_rwkv_wkv6_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const int64_t T = dst->src[1]->ne[2]; - const int64_t C = dst->ne[0]; - const int64_t HEADS = dst->src[1]->ne[1]; - const int64_t n_seqs = dst->src[5]->ne[1]; - const int64_t head_size = C / HEADS; - - float * dst_data = (float *) dst->data; - float * state = ((float *) dst->data) + C * T; - - const int ith = params->ith; - const int nth = params->nth; - - if (ith >= HEADS) { - return; - } - - const int h_start = (HEADS * ith) / nth; - const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? - (HEADS * (ith + 1)) / nth : HEADS; - - float * k = (float *) dst->src[0]->data; - float * v = (float *) dst->src[1]->data; - float * r = (float *) dst->src[2]->data; - float * time_faaaa = (float *) dst->src[3]->data; - float * time_decay = (float *) dst->src[4]->data; - - size_t t_stride = HEADS * head_size; // Same to C - - size_t h_stride = C / HEADS; - GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS - size_t h_stride_2d = head_size * head_size; - - if (ith == 0) { - memset(dst_data, 0, T * C * sizeof(float)); +float ggml_get_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3) { + void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; + switch (tensor->type) { + case GGML_TYPE_I8: + return ((int8_t *) data)[0]; + case GGML_TYPE_I16: + return ((int16_t *) data)[0]; + case GGML_TYPE_I32: + return ((int32_t *) data)[0]; + case GGML_TYPE_F16: + return GGML_FP16_TO_FP32(((ggml_fp16_t *) data)[0]); + case GGML_TYPE_BF16: + return GGML_BF16_TO_FP32(((ggml_bf16_t *) data)[0]); + case GGML_TYPE_F32: + return ((float *) data)[0]; + default: + GGML_ABORT("fatal error"); } - ggml_barrier(params->threadpool); - - - #if defined(__AVX__) && !defined(__AVX512F__) - #define GGML_F32X GGML_F32x8 - #define GGML_F32X_SET1 GGML_F32x8_SET1 - #define GGML_F32X_LOAD GGML_F32x8_LOAD - #define GGML_F32X_STORE GGML_F32x8_STORE - #define GGML_F32X_MUL GGML_F32x8_MUL - #define GGML_F32X_FMA GGML_F32x8_FMA - #define WKV_VECTOR_SIZE 8 - #elif defined(__AVX512F__) - #define GGML_F32X GGML_F32x16 - #define GGML_F32X_SET1 GGML_F32x16_SET1 - #define GGML_F32X_LOAD GGML_F32x16_LOAD - #define GGML_F32X_STORE GGML_F32x16_STORE - #define GGML_F32X_MUL GGML_F32x16_MUL - #define GGML_F32X_FMA GGML_F32x16_FMA - #define WKV_VECTOR_SIZE 16 - #elif defined(__ARM_NEON) && defined(__aarch64__) - #define GGML_F32X GGML_F32x4 - #define GGML_F32X_SET1 GGML_F32x4_SET1 - #define GGML_F32X_LOAD GGML_F32x4_LOAD - #define GGML_F32X_STORE GGML_F32x4_STORE - #define GGML_F32X_MUL GGML_F32x4_MUL - #define GGML_F32X_FMA GGML_F32x4_FMA - #define WKV_VECTOR_SIZE 4 - #endif - - #ifdef WKV_VECTOR_SIZE - const int64_t vec_count = head_size / WKV_VECTOR_SIZE; - - for (int64_t t = 0; t < T; t++) { - size_t t_offset = t * t_stride; - size_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[5]->data + state_offset; - - for (int64_t h = h_start; h < h_end; h++) { - size_t h_offset = h * h_stride; - size_t t_h_offset = t_offset + h_offset; - size_t h_2d_offset = h * h_stride_2d; - - for (int64_t i = 0; i < head_size; i++) { - size_t t_h_i_offset = t_h_offset + i; - size_t h_i_offset = h_offset + i; - size_t h_2d_i_offset = h_2d_offset + i * h_stride; - - float k_val = k[t_h_i_offset]; - float r_val = r[t_h_i_offset]; - float time_faaaa_val = time_faaaa[h_i_offset]; - float time_decay_val = time_decay[t_h_i_offset]; - - // Broadcast scalar values to vectors - GGML_F32X k_vec = GGML_F32X_SET1(k_val); - GGML_F32X r_vec = GGML_F32X_SET1(r_val); - GGML_F32X time_faaaa_vec = GGML_F32X_SET1(time_faaaa_val); - GGML_F32X time_decay_vec = GGML_F32X_SET1(time_decay_val); - - for (int64_t j = 0; j < vec_count; j++) { - size_t base_j = j * WKV_VECTOR_SIZE; - size_t t_h_j_offset = t_h_offset + base_j; - size_t h_2d_i_j_offset = h_2d_i_offset + base_j; - - // Load x elements at once - GGML_F32X v_vec = GGML_F32X_LOAD(&v[t_h_j_offset]); - GGML_F32X prev_state_vec = GGML_F32X_LOAD(&state_prev[h_2d_i_j_offset]); - GGML_F32X dst_vec = GGML_F32X_LOAD(&dst_data[t_h_j_offset]); - - // Compute kv = v * k - GGML_F32X kv_vec = GGML_F32X_MUL(v_vec, k_vec); - - // Compute temp = kv * time_faaaa + prev_state - GGML_F32X temp_vec = GGML_F32X_FMA(prev_state_vec, kv_vec, time_faaaa_vec); - - // Update dst: dst += temp * r - dst_vec = GGML_F32X_FMA(dst_vec, temp_vec, r_vec); - GGML_F32X_STORE(&dst_data[t_h_j_offset], dst_vec); - - // Update state: state = prev_state * time_decay + kv - GGML_F32X new_state_vec = GGML_F32X_FMA(kv_vec, prev_state_vec, time_decay_vec); - GGML_F32X_STORE(&state_cur[h_2d_i_j_offset], new_state_vec); - } - - // Handle remaining elements, this will not be used. - for (int64_t j = vec_count * WKV_VECTOR_SIZE; j < head_size; j++) { - size_t t_h_j_offset = t_h_offset + j; - size_t h_2d_i_j_offset = h_2d_i_offset + j; - float v_val = v[t_h_j_offset]; - float kv_val = v_val * k_val; - float prev_state_val = state_prev[h_2d_i_j_offset]; - float temp_val = kv_val * time_faaaa_val + prev_state_val; - dst_data[t_h_j_offset] += temp_val * r_val; - state_cur[h_2d_i_j_offset] = prev_state_val * time_decay_val + kv_val; - } - } - } - } - - #else - // basically fused operations: - // dst = r @ (time_faaaa * (k @ v) + state), - // state = time_decay * state + (k @ v), - // recursive through each token - for (int64_t t = 0; t < T; t++) { - size_t t_offset = t * t_stride; - size_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[5]->data + state_offset; - - for (int64_t h = h_start; h < h_end; h++) { - size_t h_offset = h * h_stride; - size_t t_h_offset = t_offset + h_offset; - size_t h_2d_offset = h * h_stride_2d; - - for (int64_t i = 0; i < head_size; i++) { - size_t t_h_i_offset = t_h_offset + i; - size_t h_i_offset = h_offset + i; - size_t h_2d_i_offset = h_2d_offset + i * h_stride; - - float k_val = k[t_h_i_offset]; - float r_val = r[t_h_i_offset]; - float time_faaaa_val = time_faaaa[h_i_offset]; - // RWKV v6: different time_decay for each token. - float time_decay_val = time_decay[t_h_i_offset]; - - for (int64_t j = 0; j < head_size; j++) { - size_t t_h_j_offset = t_h_offset + j; - size_t h_2d_i_j_offset = h_2d_i_offset + j; - - float v_val = v[t_h_j_offset]; - float kv_val = v_val * k_val; - float prev_state_val = state_prev[h_2d_i_j_offset]; - float temp_val = kv_val * time_faaaa_val + prev_state_val; - dst_data[t_h_j_offset] += temp_val * r_val; - state_cur[h_2d_i_j_offset] = prev_state_val * time_decay_val + kv_val; - } - } - } - } - #endif } - -static void ggml_compute_forward_rwkv_wkv6( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { +void ggml_set_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, float value) { + void * data = (char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]; + switch (tensor->type) { + case GGML_TYPE_I8: + { + ((int8_t *)(data))[0] = value; + } break; + case GGML_TYPE_I16: + { + ((int16_t *)(data))[0] = value; + } break; + case GGML_TYPE_I32: + { + ((int32_t *)(data))[0] = value; + } break; + case GGML_TYPE_F16: + { + ((ggml_fp16_t *)(data))[0] = GGML_FP32_TO_FP16(value); + } break; + case GGML_TYPE_BF16: + { + ((ggml_bf16_t *)(data))[0] = GGML_FP32_TO_BF16(value); + } break; case GGML_TYPE_F32: { - ggml_compute_forward_rwkv_wkv6_f32(params, dst); + ((float *)(data))[0] = value; } break; default: { @@ -11515,828 +1169,554 @@ static void ggml_compute_forward_rwkv_wkv6( } } -// ggml_compute_forward_gla +//////////////////////////////////////////////////////////////////////////////// -static void ggml_compute_forward_gla_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const int64_t T = dst->src[1]->ne[2]; - const int64_t C = dst->ne[0]; - const int64_t HEADS = dst->src[1]->ne[1]; - const int64_t n_seqs = dst->src[4]->ne[1]; - const int64_t head_size = C / HEADS; - const float scale = ggml_get_op_params_f32(dst, 0); +// ggml_compute_forward_mul_mat - float * dst_data = (float *) dst->data; - float * state = ((float *) dst->data) + C * T; +static void ggml_compute_forward_mul_mat_one_chunk( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const enum ggml_type type, + const int64_t num_rows_per_vec_dot, + const int64_t ir0_start, + const int64_t ir0_end, + const int64_t ir1_start, + const int64_t ir1_end) { - const int ith = params->ith; - const int nth = params->nth; + const struct ggml_tensor * src0 = dst->src[0]; + const struct ggml_tensor * src1 = dst->src[1]; - if (ith >= HEADS) { - return; - } + GGML_TENSOR_BINARY_OP_LOCALS - const int h_start = (HEADS * ith) / nth; - const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? - (HEADS * (ith + 1)) / nth : HEADS; + const bool src1_cont = ggml_is_contiguous(src1); - float * k = (float *) dst->src[0]->data; - float * v = (float *) dst->src[1]->data; - float * q = (float *) dst->src[2]->data; - float * g = (float *) dst->src[3]->data; + ggml_vec_dot_t const vec_dot = type_traits_cpu[type].vec_dot; + enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; - size_t t_stride = HEADS * head_size; // Same to C + // broadcast factors + const int64_t r2 = ne12 / ne02; + const int64_t r3 = ne13 / ne03; - size_t h_stride = C / HEADS; - GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS - size_t h_stride_2d = head_size * head_size; + //printf("ir0_start = %6lld, ir0_end = %6lld, ir1_start = %6lld, ir1_end = %6lld\n", ir0_start, ir0_end, ir1_start, ir1_end); - if (ith == 0) { - memset(dst_data, 0, T * C * sizeof(float)); + // threads with no work simply yield (not sure if it helps) + if (ir0_start >= ir0_end || ir1_start >= ir1_end) { + return; } - ggml_barrier(params->threadpool); - - - #if defined(__AVX__) && !defined(__AVX512F__) - #define GGML_F32X GGML_F32x8 - #define GGML_F32X_SET1 GGML_F32x8_SET1 - #define GGML_F32X_LOAD GGML_F32x8_LOAD - #define GGML_F32X_STORE GGML_F32x8_STORE - #define GGML_F32X_MUL GGML_F32x8_MUL - #define GGML_F32X_FMA GGML_F32x8_FMA - #define GLA_VECTOR_SIZE 8 - #elif defined(__AVX512F__) - #define GGML_F32X GGML_F32x16 - #define GGML_F32X_SET1 GGML_F32x16_SET1 - #define GGML_F32X_LOAD GGML_F32x16_LOAD - #define GGML_F32X_STORE GGML_F32x16_STORE - #define GGML_F32X_MUL GGML_F32x16_MUL - #define GGML_F32X_FMA GGML_F32x16_FMA - #define GLA_VECTOR_SIZE 16 - #elif defined(__ARM_NEON) && defined(__aarch64__) - #define GGML_F32X GGML_F32x4 - #define GGML_F32X_SET1 GGML_F32x4_SET1 - #define GGML_F32X_LOAD GGML_F32x4_LOAD - #define GGML_F32X_STORE GGML_F32x4_STORE - #define GGML_F32X_MUL GGML_F32x4_MUL - #define GGML_F32X_FMA GGML_F32x4_FMA - #define GLA_VECTOR_SIZE 4 - #endif - #ifdef GLA_VECTOR_SIZE - const int64_t vec_count = head_size / GLA_VECTOR_SIZE; - - for (int64_t t = 0; t < T; t++) { - size_t t_offset = t * t_stride; - size_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[4]->data + state_offset; + const void * wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; + const size_t row_size = ggml_row_size(vec_dot_type, ne10); - for (int64_t h = h_start; h < h_end; h++) { - size_t h_offset = h * h_stride; - size_t t_h_offset = t_offset + h_offset; - size_t h_2d_offset = h * h_stride_2d; + assert(ne12 % ne02 == 0); + assert(ne13 % ne03 == 0); - for (int64_t i = 0; i < head_size; i++) { - size_t t_h_i_offset = t_h_offset + i; - size_t h_2d_i_offset = h_2d_offset + i * h_stride; + // block-tiling attempt + const int64_t blck_0 = 16; + const int64_t blck_1 = 16; - float k_val = k[t_h_i_offset]; - float q_val = q[t_h_i_offset] * scale; - float g_val = g[t_h_i_offset]; + const size_t src1_col_stride = src1_cont || src1->type != vec_dot_type ? row_size : nb11; - // Broadcast scalar values to vectors - GGML_F32X k_vec = GGML_F32X_SET1(k_val); - GGML_F32X q_vec = GGML_F32X_SET1(q_val); - GGML_F32X g_vec = GGML_F32X_SET1(g_val); + // attempt to reduce false-sharing (does not seem to make a difference) + // 16 * 2, accounting for mmla kernels + float tmp[32]; - for (int64_t j = 0; j < vec_count; j++) { - size_t base_j = j * GLA_VECTOR_SIZE; - size_t t_h_j_offset = t_h_offset + base_j; - size_t h_2d_i_j_offset = h_2d_i_offset + base_j; + for (int64_t iir1 = ir1_start; iir1 < ir1_end; iir1 += blck_1) { + for (int64_t iir0 = ir0_start; iir0 < ir0_end; iir0 += blck_0) { + for (int64_t ir1 = iir1; ir1 < iir1 + blck_1 && ir1 < ir1_end; ir1 += num_rows_per_vec_dot) { + const int64_t i13 = (ir1 / (ne12 * ne1)); + const int64_t i12 = (ir1 - i13 * ne12 * ne1) / ne1; + const int64_t i11 = (ir1 - i13 * ne12 * ne1 - i12 * ne1); - // Load x elements at once - GGML_F32X v_vec = GGML_F32X_LOAD(&v[t_h_j_offset]); - GGML_F32X prev_state_vec = GGML_F32X_LOAD(&state_prev[h_2d_i_j_offset]); - GGML_F32X dst_vec = GGML_F32X_LOAD(&dst_data[t_h_j_offset]); + // broadcast src0 into src1 + const int64_t i03 = i13 / r3; + const int64_t i02 = i12 / r2; - // Compute kv = v * k - GGML_F32X kv_vec = GGML_F32X_MUL(v_vec, k_vec); + const int64_t i1 = i11; + const int64_t i2 = i12; + const int64_t i3 = i13; - // Compute temp = prev_state * g + kv - GGML_F32X temp_vec = GGML_F32X_FMA(kv_vec, prev_state_vec, g_vec); + const char * src0_row = (const char*)src0->data + (0 + i02 * nb02 + i03 * nb03); - // Update dst: dst += temp * q - dst_vec = GGML_F32X_FMA(dst_vec, temp_vec, q_vec); - GGML_F32X_STORE(&dst_data[t_h_j_offset], dst_vec); + // desc: when src1 is not a contiguous memory block we have to calculate the offset using the strides + // if it is, then we have either copied the data to params->wdata and made it contiguous or we are using + // the original src1 data pointer, so we should index using the indices directly + // TODO: this is a bit of a hack, we should probably have a better way to handle this + const char * src1_col = (const char*)wdata + + (src1_cont || src1->type != vec_dot_type + ? (i11 + i12 * ne11 + i13 * ne12 * ne11) * row_size + : (i11 * nb11 + i12 * nb12 + i13 * nb13)); + float * dst_col = (float*)((char*)dst->data + (i1 * nb1 + i2 * nb2 + i3 * nb3)); - // Update state - GGML_F32X_STORE(&state_cur[h_2d_i_j_offset], temp_vec); - } + //for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ++ir0) { + // vec_dot(ne00, &dst_col[ir0], src0_row + ir0*nb01, src1_col); + //} - // Handle remaining elements, this will not be used. - for (int64_t j = vec_count * GLA_VECTOR_SIZE; j < head_size; j++) { - size_t t_h_j_offset = t_h_offset + j; - size_t h_2d_i_j_offset = h_2d_i_offset + j; - float v_val = v[t_h_j_offset]; - float kv_val = v_val * k_val; - float prev_state_val = state_prev[h_2d_i_j_offset]; - float temp_val = kv_val + prev_state_val * g_val; - dst_data[t_h_j_offset] += temp_val * q_val; - state_cur[h_2d_i_j_offset] = temp_val; - } + for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ir0 += num_rows_per_vec_dot) { + vec_dot(ne00, &tmp[ir0 - iir0], (num_rows_per_vec_dot > 1 ? 16 : 0), src0_row + ir0 * nb01, (num_rows_per_vec_dot > 1 ? nb01 : 0), src1_col, (num_rows_per_vec_dot > 1 ? src1_col_stride : 0), num_rows_per_vec_dot); } - } - } - #else - for (int64_t t = 0; t < T; t++) { - size_t t_offset = t * t_stride; - size_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[4]->data + state_offset; - - for (int64_t h = h_start; h < h_end; h++) { - size_t h_offset = h * h_stride; - size_t t_h_offset = t_offset + h_offset; - size_t h_2d_offset = h * h_stride_2d; - - for (int64_t i = 0; i < head_size; i++) { - size_t t_h_i_offset = t_h_offset + i; - size_t h_2d_i_offset = h_2d_offset + i * h_stride; - - float k_val = k[t_h_i_offset]; - float q_val = q[t_h_i_offset] * scale; - float g_val = g[t_h_i_offset]; - - for (int64_t j = 0; j < head_size; j++) { - size_t t_h_j_offset = t_h_offset + j; - size_t h_2d_i_j_offset = h_2d_i_offset + j; - - float v_val = v[t_h_j_offset]; - float kv_val = v_val * k_val; - float prev_state_val = state_prev[h_2d_i_j_offset]; - float temp_val = prev_state_val * g_val + kv_val; - dst_data[t_h_j_offset] += temp_val * q_val; - state_cur[h_2d_i_j_offset] = temp_val; - } + for (int cn = 0; cn < num_rows_per_vec_dot; ++cn) { + memcpy(&dst_col[iir0 + cn * nb1 / nb0], tmp + (cn * 16), (MIN(iir0 + blck_0, ir0_end) - iir0) * sizeof(float)); } } } - #endif + } } - -static void ggml_compute_forward_gla( +static void ggml_compute_forward_mul_mat( const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + struct ggml_tensor * dst) { const struct ggml_tensor * src0 = dst->src[0]; + const struct ggml_tensor * src1 = dst->src[1]; - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_gla_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_rwkv_wkv7 - -static void ggml_compute_forward_rwkv_wkv7_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - const int64_t T = dst->src[1]->ne[2]; - const int64_t C = dst->ne[0]; - const int64_t HEADS = dst->src[1]->ne[1]; - const int64_t n_seqs = dst->src[6]->ne[1]; - const int64_t head_size = C / HEADS; - - float * dst_data = (float *) dst->data; - float * state = ((float *) dst->data) + C * T; + GGML_TENSOR_BINARY_OP_LOCALS const int ith = params->ith; const int nth = params->nth; - if (ith >= HEADS) { - return; - } - - const int h_start = (HEADS * ith) / nth; - const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? - (HEADS * (ith + 1)) / nth : HEADS; - - float * r = (float *) dst->src[0]->data; - float * w = (float *) dst->src[1]->data; - float * k = (float *) dst->src[2]->data; - float * v = (float *) dst->src[3]->data; - float * a = (float *) dst->src[4]->data; - float * b = (float *) dst->src[5]->data; - - int64_t t_stride = HEADS * head_size; // Same to C - - int64_t h_stride = C / HEADS; - GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS - int64_t h_stride_2d = head_size * head_size; + enum ggml_type const vec_dot_type = type_traits_cpu[src0->type].vec_dot_type; + ggml_from_float_t const from_float = type_traits_cpu[vec_dot_type].from_float; + int64_t const vec_dot_num_rows = type_traits_cpu[src0->type].nrows; - #if defined(GGML_SIMD) - for (int64_t t = 0; t < T; t++) { - int64_t t_offset = t * t_stride; - int64_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[6]->data + state_offset; + GGML_ASSERT(ne0 == ne01); + GGML_ASSERT(ne1 == ne11); + GGML_ASSERT(ne2 == ne12); + GGML_ASSERT(ne3 == ne13); - for (int64_t h = h_start; h < h_end; h++) { - int64_t h_offset = h * h_stride; - int64_t t_h_offset = t_offset + h_offset; - int64_t h_2d_offset = h * h_stride_2d; + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == ggml_type_size(src0->type)); + GGML_ASSERT(nb10 == ggml_type_size(src1->type)); - for (int64_t ii = 0; ii < head_size; ii++) { - int64_t t_h_i_offset = t_h_offset + ii; - int64_t h_2d_i_offset = h_2d_offset + ii * h_stride; + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); - GGML_F32_VEC v_vec = GGML_F32_VEC_SET1(v[t_h_i_offset]); + // nb01 >= nb00 - src0 is not transposed + // compute by src0 rows - float sa = 0; - { - GGML_F32_VEC sum[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; - GGML_F32_VEC ax[GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; - for (int64_t j = 0; j < head_size; j += GGML_F32_STEP) { - for (int64_t kk = 0; kk < GGML_F32_ARR; kk++) { - ax[kk] = GGML_F32_VEC_LOAD(&a[t_h_offset + j + kk * GGML_F32_EPR]); - ay[kk] = GGML_F32_VEC_LOAD(&state_prev[h_2d_i_offset + j + kk * GGML_F32_EPR]); - sum[kk] = GGML_F32_VEC_FMA(sum[kk], ax[kk], ay[kk]); - } - } - GGML_F32_VEC_REDUCE(sa, sum); - } + // TODO: extract to "extra_op" +#if GGML_USE_LLAMAFILE + // broadcast factors + const int64_t r2 = ne12 / ne02; + const int64_t r3 = ne13 / ne03; - GGML_F32_VEC sa_vec = GGML_F32_VEC_SET1(sa); + const bool src1_cont = ggml_is_contiguous(src1); - int64_t j = 0; - GGML_F32_VEC result_vec[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; - for (; j < head_size; j += GGML_F32_STEP) { - for (int64_t kk = 0; kk < GGML_F32_ARR; kk++) { - int64_t t_h_j_offset = t_h_offset + j + kk * GGML_F32_EPR; - int64_t h_2d_i_j_offset = h_2d_i_offset + j + kk * GGML_F32_EPR; + if (src1_cont) { + for (int64_t i13 = 0; i13 < ne13; i13++) + for (int64_t i12 = 0; i12 < ne12; i12++) + if (!llamafile_sgemm(params, + ne01, ne11, ne00/ggml_blck_size(src0->type), + (const char *)src0->data + i12/r2*nb02 + i13/r3*nb03, + nb01/ggml_type_size(src0->type), + (const char *)src1->data + i12*nb12 + i13*nb13, + nb11/ggml_type_size(src1->type), + (char *)dst->data + i12*nb2 + i13*nb3, + nb1/ggml_type_size(dst->type), + src0->type, + src1->type, + dst->type)) + goto UseGgmlGemm1; + return; + } +UseGgmlGemm1:; +#endif - GGML_F32_VEC r_vec = GGML_F32_VEC_LOAD(&r[t_h_j_offset]); - GGML_F32_VEC w_vec = GGML_F32_VEC_LOAD(&w[t_h_j_offset]); - GGML_F32_VEC k_vec = GGML_F32_VEC_LOAD(&k[t_h_j_offset]); - GGML_F32_VEC b_vec = GGML_F32_VEC_LOAD(&b[t_h_j_offset]); + if (src1->type != vec_dot_type) { + char * wdata = params->wdata; - k_vec = GGML_F32_VEC_MUL(v_vec, k_vec); + const size_t nbw0 = ggml_type_size(vec_dot_type); + const size_t nbw1 = ggml_row_size(vec_dot_type, ne10); + const size_t nbw2 = nbw1*ne11; + const size_t nbw3 = nbw2*ne12; - GGML_F32_VEC state_vec = GGML_F32_VEC_LOAD(&state_prev[h_2d_i_j_offset]); - // kv + s * decay + sa * b - state_vec = GGML_F32_VEC_FMA(k_vec, state_vec, w_vec); - state_vec = GGML_F32_VEC_FMA(state_vec, sa_vec, b_vec); - GGML_F32_VEC_STORE(&state_cur[h_2d_i_j_offset], state_vec); + assert(params->wsize >= ne13*nbw3); + GGML_ASSERT(src1->type == GGML_TYPE_F32); - result_vec[kk] = GGML_F32_VEC_FMA(result_vec[kk], state_vec, r_vec); - } - } - GGML_F32_VEC_REDUCE(dst_data[t_h_i_offset], result_vec); - - // There shouldn't be left-overs though. - for (; j < head_size; j++) { - int64_t t_h_j_offset = t_h_offset + j; - int64_t h_2d_i_j_offset = h_2d_i_offset + j; - - float r_val = r[t_h_j_offset]; - float w_val = w[t_h_j_offset]; - float k_val = k[t_h_j_offset]; - float b_val = b[t_h_j_offset]; - float kv_val = v[t_h_i_offset] * k_val; - - float prev_state_val = state_prev[h_2d_i_j_offset]; - state_cur[h_2d_i_j_offset] = prev_state_val * w_val + kv_val + sa * b_val; - dst_data[t_h_i_offset] += state_cur[h_2d_i_j_offset] * r_val; - } + #if 0 + for (int64_t i13 = 0; i13 < ne13; ++i13) { + for (int64_t i12 = 0; i12 < ne12; ++i12) { + for (int64_t i11 = ith; i11 < ne11; i11 += nth) { + from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11), + (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1), + ne10); } } } #else - for (int64_t t = 0; t < T; t++) { - int64_t t_offset = t * t_stride; - int64_t state_offset = head_size * C * (t / (T / n_seqs)); - float * state_cur = state + state_offset; - float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[6]->data + state_offset; - - for (int64_t h = h_start; h < h_end; h++) { - int64_t h_offset = h * h_stride; - int64_t t_h_offset = t_offset + h_offset; - int64_t h_2d_offset = h * h_stride_2d; - - for (int64_t i = 0; i < head_size; i++) { - int64_t t_h_i_offset = t_h_offset + i; - int64_t h_2d_i_offset = h_2d_offset + i * h_stride; - - float v_val = v[t_h_i_offset]; - - float sa = 0, result = 0; - for (int64_t j = 0; j < head_size; j++) { - sa += a[t_h_offset + j] * state_prev[h_2d_i_offset + j]; - } - - for (int64_t j = 0; j < head_size; j++) { - int64_t t_h_j_offset = t_h_offset + j; - int64_t h_2d_i_j_offset = h_2d_i_offset + j; - - float r_val = r[t_h_j_offset]; - float w_val = w[t_h_j_offset]; - float k_val = k[t_h_j_offset]; - float b_val = b[t_h_j_offset]; - float kv_val = v_val * k_val; - float prev_state_val = state_prev[h_2d_i_j_offset]; - state_cur[h_2d_i_j_offset] = prev_state_val * w_val + kv_val + sa * b_val; - result += state_cur[h_2d_i_j_offset] * r_val; - } - dst_data[t_h_i_offset] = result; + for (int64_t i13 = 0; i13 < ne13; ++i13) { + for (int64_t i12 = 0; i12 < ne12; ++i12) { + for (int64_t i11 = 0; i11 < ne11; ++i11) { + size_t bs = ggml_blck_size(vec_dot_type); + int64_t ne10_block_start = (ith * ne10/bs) / nth; + int64_t ne10_block_end = ((ith + 1) * ne10/bs) / nth; + from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + ne10_block_start*bs*nb10), + (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1 + ne10_block_start*nbw0), + (ne10_block_end - ne10_block_start) * bs); } } } #endif -} - - -static void ggml_compute_forward_rwkv_wkv7( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_rwkv_wkv7_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } - } -} - -// ggml_compute_forward_map_unary - -static void ggml_compute_forward_map_unary_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_unary_op_f32_t fun) { - - const struct ggml_tensor * src0 = dst->src[0]; - - if (params->ith != 0) { - return; - } - - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, dst)); - - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; - - for (int i = 0; i < n; i++) { - fun(nc, - (float *) ((char *) dst->data + i*( dst->nb[1])), - (float *) ((char *) src0->data + i*(src0->nb[1]))); } -} -static void ggml_compute_forward_map_unary( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_unary_op_f32_t fun) { - - const struct ggml_tensor * src0 = dst->src[0]; - - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_map_unary_f32(params, dst, fun); - } break; - default: - { - GGML_ABORT("fatal error"); - } + if (ith == 0) { + // Every thread starts at ith, so the first unprocessed chunk is nth. This save a bit of coordination right at the start. + atomic_store_explicit(¶ms->threadpool->current_chunk, nth, memory_order_relaxed); } -} - -// ggml_compute_forward_map_binary -static void ggml_compute_forward_map_binary_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_binary_op_f32_t fun) { + ggml_barrier(params->threadpool); - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src1 = dst->src[1]; +#if GGML_USE_LLAMAFILE + if (src1->type != vec_dot_type) { + const void* wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; + const size_t row_size = ggml_row_size(vec_dot_type, ne10); - if (params->ith != 0) { + for (int64_t i13 = 0; i13 < ne13; i13++) + for (int64_t i12 = 0; i12 < ne12; i12++) + if (!llamafile_sgemm(params, + ne01, ne11, ne00/ggml_blck_size(src0->type), + (const char *)src0->data + i12/r2*nb02 + i13/r3*nb03, + nb01/ggml_type_size(src0->type), + (const char *)wdata + (i12*ne11 + i13*ne12*ne11)*row_size, + row_size/ggml_type_size(vec_dot_type), + (char *)dst->data + i12*nb2 + i13*nb3, + nb1/ggml_type_size(dst->type), + src0->type, + vec_dot_type, + dst->type)) + goto UseGgmlGemm2; return; } +UseGgmlGemm2:; +#endif - assert(ggml_is_contiguous_1(src0)); - assert(ggml_is_contiguous_1(src1)); - assert(ggml_is_contiguous_1(dst)); - assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + // This is the size of the first dimension of the result, so we can iterate that way. (see the ASSERT above, these are the same numbers) + const int64_t nr0 = ne0; - const int n = ggml_nrows(src0); - const int nc = src0->ne[0]; + // This is the size of the rest of the dimensions of the result + const int64_t nr1 = ne1 * ne2 * ne3; - for (int i = 0; i < n; i++) { - fun(nc, - (float *) ((char *) dst->data + i*( dst->nb[1])), - (float *) ((char *) src0->data + i*(src0->nb[1])), - (float *) ((char *) src1->data + i*(src1->nb[1]))); - } -} + // Now select a reasonable chunk size. + int chunk_size = 16; -static void ggml_compute_forward_map_binary( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_binary_op_f32_t fun) { + // We need to step up the size if it's small + if (nr0 == 1 || nr1 == 1) { + chunk_size = 64; + } - const struct ggml_tensor * src0 = dst->src[0]; + // distribute the work across the inner or outer loop based on which one is larger + // The number of chunks in the 0/1 dim. + // CEIL(nr0/chunk_size) + int64_t nchunk0 = (nr0 + chunk_size - 1) / chunk_size; + int64_t nchunk1 = (nr1 + chunk_size - 1) / chunk_size; - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_map_binary_f32(params, dst, fun); - } break; - default: - { - GGML_ABORT("fatal error"); - } + // If the chunking is poor for the number of threads on this setup, scrap the whole plan. Re-chunk it by thread. + // Also, chunking by thread was measured to have perform better on NUMA systems. See https://github.com/ggml-org/llama.cpp/pull/6915 + // In theory, chunking should be just as useful on NUMA and non NUMA systems, but testing disagreed with that. + if (nchunk0 * nchunk1 < nth * 4 || ggml_is_numa()) { + // distribute the thread work across the inner or outer loop based on which one is larger + nchunk0 = nr0 > nr1 ? nth : 1; // parallelize by src0 rows + nchunk1 = nr0 > nr1 ? 1 : nth; // parallelize by src1 rows } -} -// ggml_compute_forward_map_custom1 + // The number of elements in each chunk + const int64_t dr0 = (nr0 + nchunk0 - 1) / nchunk0; + const int64_t dr1 = (nr1 + nchunk1 - 1) / nchunk1; -static void ggml_compute_forward_map_custom1_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_custom1_op_f32_t fun) { + // The first chunk comes from our thread_id, the rest will get auto-assigned. + int current_chunk = ith; - const struct ggml_tensor * a = dst->src[0]; + while (current_chunk < nchunk0 * nchunk1) { + const int64_t ith0 = current_chunk % nchunk0; + const int64_t ith1 = current_chunk / nchunk0; - if (params->ith != 0) { - return; - } + const int64_t ir0_start = dr0 * ith0; + const int64_t ir0_end = MIN(ir0_start + dr0, nr0); - fun(dst, a); -} + const int64_t ir1_start = dr1 * ith1; + const int64_t ir1_end = MIN(ir1_start + dr1, nr1); -// ggml_compute_forward_map_custom2 + // dot kernels can handle 1 row and col at a time, but mmla kernels can process 2 rows and cols + int64_t num_rows_per_vec_dot = vec_dot_num_rows; -static void ggml_compute_forward_map_custom2_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_custom2_op_f32_t fun) { + // these checks are needed to avoid crossing dim1 boundaries + // can be optimized, but the logic would become more complicated, so keeping it like this for simplicity + if ((nr0 % 2 != 0) || (ne11 % 2 != 0) || ((ir0_end - ir0_start) % 2 != 0) || ((ir1_end - ir1_start) % 2 != 0)) { + num_rows_per_vec_dot = 1; + } + ggml_compute_forward_mul_mat_one_chunk(params, dst, src0->type, num_rows_per_vec_dot, ir0_start, ir0_end, ir1_start, ir1_end); - const struct ggml_tensor * a = dst->src[0]; - const struct ggml_tensor * b = dst->src[1]; + if (nth >= nchunk0 * nchunk1) { + break; + } - if (params->ith != 0) { - return; + current_chunk = atomic_fetch_add_explicit(¶ms->threadpool->current_chunk, 1, memory_order_relaxed); } - - fun(dst, a, b); } -// ggml_compute_forward_map_custom3 - -static void ggml_compute_forward_map_custom3_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst, - const ggml_custom3_op_f32_t fun) { +// ggml_compute_forward_mul_mat_id - const struct ggml_tensor * a = dst->src[0]; - const struct ggml_tensor * b = dst->src[1]; - const struct ggml_tensor * c = dst->src[1]; +#define MMID_MATRIX_ROW(row_id, i1) matrix_rows[(row_id)*ids->ne[0]*ids->ne[1] + (i1)] - if (params->ith != 0) { - return; - } +struct mmid_row_mapping { + int32_t i1; + int32_t i2; +}; - fun(dst, a, b, c); -} +static void ggml_compute_forward_mul_mat_id_one_chunk( + struct ggml_tensor * dst, + const struct ggml_tensor * src0, + const struct ggml_tensor * src1, + const struct ggml_tensor * ids, + const int64_t cur_a, + const int64_t ir0_start, + const int64_t ir0_end, + const int64_t ir1_start, + const int64_t ir1_end, + const char * src0_cur, + const struct mmid_row_mapping * matrix_rows, + const size_t row_size, + const bool src1_cont, + const void * wdata) { -// ggml_compute_forward_map_custom1 + GGML_TENSOR_BINARY_OP_LOCALS -static void ggml_compute_forward_map_custom1( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + const enum ggml_type type = src0->type; - const struct ggml_tensor * a = dst->src[0]; + ggml_vec_dot_t const vec_dot = type_traits_cpu[type].vec_dot; + enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; - struct ggml_map_custom1_op_params p; - memcpy(&p, dst->op_params, sizeof(p)); + const int64_t blck_0 = 16; + const int64_t blck_1 = 16; - p.fun(dst, a, params->ith, params->nth, p.userdata); -} + float tmp[16]; -// ggml_compute_forward_map_custom2 + for (int64_t iir1 = ir1_start; iir1 < ir1_end; iir1 += blck_1) { + for (int64_t iir0 = ir0_start; iir0 < ir0_end; iir0 += blck_0) { + for (int64_t ir1 = iir1; ir1 < iir1 + blck_1 && ir1 < ir1_end; ++ir1) { + const int64_t _i12 = ir1; // logical row index for this expert -static void ggml_compute_forward_map_custom2( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + struct mmid_row_mapping row_mapping = MMID_MATRIX_ROW(cur_a, _i12); + const int id = row_mapping.i1; // selected expert index - const struct ggml_tensor * a = dst->src[0]; - const struct ggml_tensor * b = dst->src[1]; + const int64_t i11 = id % ne11; + const int64_t i12 = row_mapping.i2; // row index in src1 - struct ggml_map_custom2_op_params p; - memcpy(&p, dst->op_params, sizeof(p)); + const int64_t i1 = id; // selected expert index + const int64_t i2 = i12; // row - p.fun(dst, a, b, params->ith, params->nth, p.userdata); -} + // desc: when src1 is not a contiguous memory block we have to calculate the offset using the strides + // if it is, then we have either copied the data to params->wdata and made it contiguous or we are using + // the original src1 data pointer, so we should index using the indices directly + // TODO: this is a bit of a hack, we should probably have a better way to handle this + const char * src1_col = (const char *) wdata + + (src1_cont || src1->type != vec_dot_type + ? (i11 + i12*ne11)*row_size + : (i11*nb11 + i12*nb12)); -// ggml_compute_forward_map_custom3 + float * dst_col = (float *) ((char *) dst->data + (i1*nb1 + i2*nb2)); -static void ggml_compute_forward_map_custom3( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + for (int64_t ir0 = iir0; ir0 < iir0 + blck_0 && ir0 < ir0_end; ++ir0) { + vec_dot(ne00, &tmp[ir0 - iir0], 0, src0_cur + ir0*nb01, 0, src1_col, 0, 1); + } - const struct ggml_tensor * a = dst->src[0]; - const struct ggml_tensor * b = dst->src[1]; - const struct ggml_tensor * c = dst->src[2]; + memcpy(&dst_col[iir0], tmp, (MIN(iir0 + blck_0, ir0_end) - iir0)*sizeof(float)); + } + } + } +} - struct ggml_map_custom3_op_params p; - memcpy(&p, dst->op_params, sizeof(p)); +static void * incr_ptr_aligned(void ** p, size_t size, size_t align) { - p.fun(dst, a, b, c, params->ith, params->nth, p.userdata); + void * ptr = *p; + ptr = (void *) GGML_PAD((uintptr_t) ptr, align); + *p = (void *) ((char *) ptr + size); + return ptr; } -// ggml_compute_forward_cross_entropy_loss - -static void ggml_compute_forward_cross_entropy_loss_f32( +static void ggml_compute_forward_mul_mat_id( const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + struct ggml_tensor * dst) { const struct ggml_tensor * src0 = dst->src[0]; const struct ggml_tensor * src1 = dst->src[1]; + const struct ggml_tensor * ids = dst->src[2]; - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT(src0->nb[0] == ggml_type_size(src0->type)); - GGML_ASSERT(src1->nb[0] == ggml_type_size(src1->type)); - GGML_ASSERT(ggml_are_same_shape(src0, src1)); - GGML_ASSERT(ggml_is_scalar(dst)); - GGML_ASSERT(dst->type == GGML_TYPE_F32); - - // TODO: handle transposed/permuted matrices - const int64_t nc = src0->ne[0]; - const int64_t nr = ggml_nrows(src0); + GGML_TENSOR_BINARY_OP_LOCALS const int ith = params->ith; const int nth = params->nth; - float * sums = (float *) params->wdata; - float * st = ((float *) params->wdata) + nth + ith*nc; - float sum_thread = 0.0f; - - GGML_ASSERT(params->wsize >= sizeof(float) * (nth + nth * nc)); - - // rows per thread - const int64_t dr = (nr + nth - 1)/nth; - - // row range for this thread - const int64_t ir0 = dr*ith; - const int64_t ir1 = MIN(ir0 + dr, nr); - - for (int64_t i1 = ir0; i1 < ir1; ++i1) { - const float * s0 = (const float *)((const char *) src0->data + i1*src0->nb[1]); - const float * s1 = (const float *)((const char *) src1->data + i1*src1->nb[1]); - -#ifndef NDEBUG - for (int64_t i = 0; i < nc; ++i) { - //printf("p[%d] = %f\n", i, p[i]); - assert(!isnan(s0[i])); - assert(!isnan(s1[i])); - } -#endif - - float max = -INFINITY; - ggml_vec_max_f32(nc, &max, s0); - const ggml_float sum_softmax = ggml_vec_log_soft_max_f32(nc, st, s0, max); - assert(sum_softmax >= 0.0); + const enum ggml_type type = src0->type; - ggml_vec_add1_f32(nc, st, st, -sum_softmax); - ggml_vec_mul_f32(nc, st, st, s1); + const bool src1_cont = ggml_is_contiguous(src1); - float sum_st = 0.0f; - ggml_vec_sum_f32(nc, &sum_st, st); - sum_thread += sum_st; + enum ggml_type const vec_dot_type = type_traits_cpu[type].vec_dot_type; + ggml_from_float_t const from_float = type_traits_cpu[vec_dot_type].from_float; -#ifndef NDEBUG - for (int64_t i = 0; i < nc; ++i) { - assert(!isnan(st[i])); - assert(!isinf(st[i])); - } -#endif - } - sums[ith] = sum_thread; - ggml_barrier(params->threadpool); + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == ggml_type_size(type)); + GGML_ASSERT(nb10 == ggml_type_size(src1->type)); - if (ith == 0) { - float * dp = (float *) dst->data; - ggml_vec_sum_f32(nth, dp, sums); - dp[0] *= -1.0f / (float) nr; - } -} + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); -static void ggml_compute_forward_cross_entropy_loss( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + // row groups + const int n_ids = ids->ne[0]; // n_expert_used + const int n_as = ne02; // n_expert - const struct ggml_tensor * src0 = dst->src[0]; + void * wdata_cur = params->wdata; - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_cross_entropy_loss_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); - } + if (src1->type != vec_dot_type) { + incr_ptr_aligned(&wdata_cur, ggml_row_size(vec_dot_type, ggml_nelements(src1)), sizeof(int64_t)); } -} - -// ggml_compute_forward_cross_entropy_loss_back -static void ggml_compute_forward_cross_entropy_loss_back_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { - - const struct ggml_tensor * grad = dst->src[0]; // gradient of forward pass output - const struct ggml_tensor * src0f = dst->src[1]; // src0 of forward pass - const struct ggml_tensor * src1f = dst->src[2]; // src1 of forward pass - - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_is_contiguous(src0f)); - GGML_ASSERT(ggml_is_contiguous(src1f)); - GGML_ASSERT(ggml_is_contiguous(grad)); - GGML_ASSERT(ggml_are_same_shape(src0f, src1f) && ggml_are_same_shape(src0f, dst)); + int64_t * matrix_row_counts = // [n_as] + incr_ptr_aligned(&wdata_cur, n_as*sizeof(int64_t), sizeof(int64_t)); - const int64_t ith = params->ith; - const int64_t nth = params->nth; + struct mmid_row_mapping * matrix_rows = // [n_as][ids->ne[0]*ids->ne[1]] + incr_ptr_aligned(&wdata_cur, n_as*ids->ne[0]*ids->ne[1]*sizeof(struct mmid_row_mapping), sizeof(int64_t)); - // TODO: handle transposed/permuted matrices - const int64_t nc = src0f->ne[0]; - const int64_t nr = ggml_nrows(src0f); + char (*atomic_current_chunk)[CACHE_LINE_SIZE] = // [n_as] + incr_ptr_aligned(&wdata_cur, CACHE_LINE_SIZE * n_as, CACHE_LINE_SIZE); - // rows per thread - const int64_t dr = (nr + nth - 1)/nth; + GGML_ASSERT(params->wsize >= (size_t)((char *) wdata_cur - (char *) params->wdata)); - // row range for this thread - const int64_t ir0 = dr*ith; - const int64_t ir1 = MIN(ir0 + dr, nr); + if (src1->type != vec_dot_type) { + char * wdata = params->wdata; - const float d_by_nr = ((const float *) grad->data)[0] / (float) nr; + const size_t nbw0 = ggml_type_size(vec_dot_type); + const size_t nbw1 = ggml_row_size(vec_dot_type, ne10); + const size_t nbw2 = nbw1*ne11; + const size_t nbw3 = nbw2*ne12; - for (int64_t i1 = ir0; i1 < ir1; i1++) { - float * ds0 = (float *)((char *) dst->data + i1*dst->nb[1]); - const float * s0 = (const float *)((const char *) src0f->data + i1*src0f->nb[1]); - const float * s1 = (const float *)((const char *) src1f->data + i1*src1f->nb[1]); + assert(params->wsize >= ne13*nbw3); + GGML_ASSERT(src1->type == GGML_TYPE_F32); -#ifndef NDEBUG - for (int64_t i = 0; i < nc; ++i) { - //printf("p[%d] = %f\n", i, p[i]); - assert(!isnan(s0[i])); - assert(!isnan(s1[i])); +#if 0 + for (int64_t i13 = 0; i13 < ne13; ++i13) { + for (int64_t i12 = ith; i12 < ne12; i12 += nth) { + for (int64_t i11 = 0; i11 < ne11; ++i11) { + from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11), + (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1), + ne10); + } + } } -#endif - - // soft_max - float max = -INFINITY; - ggml_vec_max_f32(nc, &max, s0); - const ggml_float sum = ggml_vec_soft_max_f32(nc, ds0, s0, max); - assert(sum > 0.0); - ggml_vec_scale_f32(nc, ds0, 1.0/sum); - - // grad(src0f) = (softmax(src0f) - src1f) * grad(cross_entropy_loss(src0f, src1f)) / nr - ggml_vec_sub_f32(nc, ds0, ds0, s1); - ggml_vec_scale_f32(nc, ds0, d_by_nr); - -#ifndef NDEBUG - for (int64_t i = 0; i < nc; ++i) { - assert(!isnan(ds0[i])); - assert(!isinf(ds0[i])); +#else + for (int64_t i13 = 0; i13 < ne13; ++i13) { + for (int64_t i12 = 0; i12 < ne12; ++i12) { + for (int64_t i11 = 0; i11 < ne11; ++i11) { + size_t bs = ggml_blck_size(vec_dot_type); + int64_t ne10_block_start = (ith * ne10/bs) / nth; + int64_t ne10_block_end = ((ith + 1) * ne10/bs) / nth; + from_float((float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + ne10_block_start*bs*nb10), + (void *) (wdata + i13*nbw3 + i12*nbw2 + i11*nbw1 + ne10_block_start*nbw0), + (ne10_block_end - ne10_block_start) * bs); + } + } } #endif } -} -static void ggml_compute_forward_cross_entropy_loss_back( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + if (ith == 0) { + // initialize matrix_row_counts + memset(matrix_row_counts, 0, n_as*sizeof(int64_t)); - const struct ggml_tensor * src0 = dst->src[0]; + // group rows by src0 matrix + for (int64_t iid1 = 0; iid1 < ids->ne[1]; ++iid1) { + for (int id = 0; id < n_ids; ++id) { + const int32_t i02 = *(const int32_t *) ((const char *) ids->data + iid1*ids->nb[1] + id*ids->nb[0]); - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_cross_entropy_loss_back_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); + assert(i02 >= 0 && i02 < n_as); + + MMID_MATRIX_ROW(i02, matrix_row_counts[i02]) = (struct mmid_row_mapping) {id, iid1}; + matrix_row_counts[i02] += 1; } + } } -} -static void ggml_compute_forward_opt_step_adamw_f32( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + // reset current_chunk + for (int cur_a = ith; cur_a < n_as; cur_a += nth) { + atomic_int * current_chunk_ctr = (atomic_int *)(atomic_current_chunk + cur_a); + *current_chunk_ctr = nth; + } - const struct ggml_tensor * src0 = dst->src[0]; - const struct ggml_tensor * src0_grad = dst->src[1]; - const struct ggml_tensor * src0_grad_m = dst->src[2]; - const struct ggml_tensor * src0_grad_v = dst->src[3]; - const struct ggml_tensor * adamw_params = dst->src[4]; + ggml_barrier(params->threadpool); - GGML_ASSERT(ggml_are_same_shape(src0, src0_grad)); - GGML_ASSERT(ggml_are_same_shape(src0, src0_grad_m)); - GGML_ASSERT(ggml_are_same_shape(src0, src0_grad_v)); - GGML_ASSERT(ggml_nelements(adamw_params) == 7); + for (int cur_a = 0; cur_a < n_as; ++cur_a) { + const int64_t cne1 = matrix_row_counts[cur_a]; - const int ith = params->ith; - const int nth = params->nth; + if (cne1 == 0) { + continue; + } - const int nr = ggml_nrows(src0); + const char * src0_cur = (const char *) src0->data + cur_a * nb02; + const void * wdata = (src1->type == vec_dot_type) ? src1->data : params->wdata; + const size_t row_size = ggml_row_size(vec_dot_type, ne10); - GGML_TENSOR_UNARY_OP_LOCALS - GGML_ASSERT(nb00 == sizeof(float)); + const int64_t nr0 = ne01; + const int64_t nr1 = cne1; - // rows per thread - const int dr = (nr + nth - 1)/nth; + int chunk_size = 16; + if (nr0 == 1 || nr1 == 1) { + chunk_size = 64; + } - // row range for this thread - const int ir0 = dr*ith; - const int ir1 = MIN(ir0 + dr, nr); +#if defined(__aarch64__) + // disable for ARM + const bool disable_chunking = true; +#else + // disable for NUMA + const bool disable_chunking = ggml_is_numa(); +#endif // defined(__aarch64__) - const float * adamw_params_ptr = ggml_get_data_f32(adamw_params); - const float alpha = adamw_params_ptr[0]; - const float beta1 = adamw_params_ptr[1]; - const float beta2 = adamw_params_ptr[2]; - const float eps = adamw_params_ptr[3]; - const float wd = adamw_params_ptr[4]; - const float beta1h = adamw_params_ptr[5]; - const float beta2h = adamw_params_ptr[6]; + int64_t nchunk0 = (nr0 + chunk_size - 1) / chunk_size; + int64_t nchunk1 = (nr1 + chunk_size - 1) / chunk_size; - for (int ir = ir0; ir < ir1; ++ir) { - const int64_t i03 = ir/(ne02*ne01); - const int64_t i02 = (ir - i03*ne02*ne01)/ne01; - const int64_t i01 = (ir - i03*ne02*ne01 - i02*ne01); + if (nchunk0 * nchunk1 < nth * 4 || disable_chunking) { + nchunk0 = nr0 > nr1 ? nth : 1; + nchunk1 = nr0 > nr1 ? 1 : nth; + } - const size_t offset = i03*nb03 + i02*nb02 + i01*nb01; + const int64_t dr0 = (nr0 + nchunk0 - 1) / nchunk0; + const int64_t dr1 = (nr1 + nchunk1 - 1) / nchunk1; - float * w = (float *) ((char *) src0->data + offset); // weight - const float * g = (const float *) ((const char *) src0_grad->data + offset); // grad - float * m = (float *) ((char *) src0_grad_m->data + offset); - float * v = (float *) ((char *) src0_grad_v->data + offset); + int current_chunk = ith; - for (int i00 = 0; i00 < ne00; ++i00) { - m[i00] = m[i00]*beta1 + g[i00]*(1.0f - beta1); - v[i00] = v[i00]*beta2 + g[i00]*g[i00]*(1.0f - beta2); + atomic_int * current_chunk_ctr = (atomic_int *)(atomic_current_chunk + cur_a); - const float mh = m[i00]*beta1h; - const float vh = sqrtf(v[i00]*beta2h) + eps; + while (current_chunk < nchunk0 * nchunk1) { + const int64_t ith0 = current_chunk % nchunk0; + const int64_t ith1 = current_chunk / nchunk0; - // The weight decay is applied independently of the Adam momenta m and v. - // This is NOT equivalent to l2 regularization that adds w[i00]*w[i00] to the loss. - // See: https://arxiv.org/pdf/1711.05101v3.pdf - w[i00] = w[i00]*(1.0f - alpha*wd) - alpha*mh/vh; - } - } -} + const int64_t ir0_start = dr0 * ith0; + const int64_t ir0_end = MIN(ir0_start + dr0, nr0); -static void ggml_compute_forward_opt_step_adamw( - const struct ggml_compute_params * params, - struct ggml_tensor * dst) { + const int64_t ir1_start = dr1 * ith1; + const int64_t ir1_end = MIN(ir1_start + dr1, nr1); - const struct ggml_tensor * src0 = dst->src[0]; + ggml_compute_forward_mul_mat_id_one_chunk( + dst, src0, src1, ids, cur_a, + ir0_start, ir0_end, ir1_start, ir1_end, + src0_cur, matrix_rows, row_size, src1_cont, wdata + ); - switch (src0->type) { - case GGML_TYPE_F32: - { - ggml_compute_forward_opt_step_adamw_f32(params, dst); - } break; - default: - { - GGML_ABORT("fatal error"); + if (nth >= nchunk0 * nchunk1) { + break; } + + current_chunk = atomic_fetch_add_explicit(current_chunk_ctr, 1, memory_order_relaxed); + } } } + ///////////////////////////////// static void ggml_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * tensor) { diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp new file mode 100644 index 0000000000000..7a8d5ac6fd9d0 --- /dev/null +++ b/ggml/src/ggml-cpu/ops.cpp @@ -0,0 +1,8719 @@ +#include "ops.h" + +#include "ggml-cpu.h" +#include "ggml-impl.h" +#include "binary-ops.h" +#include "unary-ops.h" +#include "vec.h" + +#include + +#if defined(_MSC_VER) +// disable "possible loss of data" to avoid hundreds of casts +// we should just be careful :) +#pragma warning(disable: 4244 4267) + +// disable POSIX deprecation warnings +// these functions are never going away, anyway +#pragma warning(disable: 4996) + +// unreachable code because of multiple instances of code after GGML_ABORT +#pragma warning(disable: 4702) +#endif + +// ggml_compute_forward_dup + +static void ggml_compute_forward_dup_same_cont( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); + GGML_ASSERT(src0->type == dst->type); + + const size_t nb0 = ggml_type_size(src0->type); + + const int ith = params->ith; // thread index + const int nth = params->nth; // number of threads + + // parallelize by blocks + const int nk = ggml_nelements(src0)/ggml_blck_size(src0->type); + const int dr = (nk + nth - 1) / nth; + const int k0 = dr * ith; + const int k1 = MIN(k0 + dr, nk); + + if (k0 < k1) { + memcpy( + ((char *) dst->data + k0*nb0), + ((char *) src0->data + k0*nb0), + (k1 - k0) * nb0); + } +} + +static void ggml_compute_forward_dup_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + + GGML_TENSOR_UNARY_OP_LOCALS + + const int ith = params->ith; // thread index + const int nth = params->nth; // number of threads + + // parallelize by rows + const int nr = ne01; + // number of rows per thread + const int dr = (nr + nth - 1) / nth; + // row range for this thread + const int ir0 = dr * ith; + const int ir1 = MIN(ir0 + dr, nr); + + if (src0->type == dst->type && + ne00 == ne0 && + nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { + // copy by rows + const size_t rs = ne00*nb00; + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ir0; i01 < ir1; i01++) { + memcpy( + ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), + ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), + rs); + } + } + } + return; + } + + // TODO: add more special-case implementations for tensor shapes/strides that can benefit from memcpy + + if (ggml_is_contiguous(dst)) { + if (nb00 == sizeof(ggml_fp16_t)) { + if (dst->type == GGML_TYPE_F16) { + size_t id = 0; + const size_t rs = ne00 * nb00; + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; + memcpy(dst_ptr + id, src0_ptr, rs); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + float * dst_ptr = (float *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + for (int i00 = 0; i00 < ne00; i00++) { + dst_ptr[id] = GGML_FP16_TO_FP32(src0_ptr[i00]); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { + ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; + float * src0_f32 = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; + + size_t id = 0; + size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + + for (int i00 = 0; i00 < ne00; i00++) { + src0_f32[i00] = GGML_FP16_TO_FP32(src0_ptr[i00]); + } + + quantize_row_q(src0_f32, dst_ptr + id, ne00); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } else { + //printf("%s: this is not optimal - fix me\n", __func__); + + if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + float * dst_ptr = (float *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = GGML_FP16_TO_FP32(*src0_ptr); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F16) { + size_t id = 0; + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = *src0_ptr; + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } + return; + } + + // dst counters + int64_t i10 = 0; + int64_t i11 = 0; + int64_t i12 = 0; + int64_t i13 = 0; + + if (dst->type == GGML_TYPE_F16) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + memcpy(dst_ptr, src0_ptr, sizeof(ggml_fp16_t)); + + if (++i10 == ne00) { + i10 = 0; + if (++i11 == ne01) { + i11 = 0; + if (++i12 == ne02) { + i12 = 0; + if (++i13 == ne03) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else if (dst->type == GGML_TYPE_F32) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + *(float *) dst_ptr = GGML_FP16_TO_FP32(*(const ggml_fp16_t *) src0_ptr); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } +} + +static void ggml_compute_forward_dup_bf16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + + GGML_TENSOR_UNARY_OP_LOCALS + + const int ith = params->ith; // thread index + const int nth = params->nth; // number of threads + + // parallelize by rows + const int nr = ne01; + // number of rows per thread + const int dr = (nr + nth - 1) / nth; + // row range for this thread + const int ir0 = dr * ith; + const int ir1 = MIN(ir0 + dr, nr); + + if (src0->type == dst->type && + ne00 == ne0 && + nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { + // copy by rows + const size_t rs = ne00*nb00; + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ir0; i01 < ir1; i01++) { + memcpy( + ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), + ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), + rs); + } + } + } + return; + } + + // TODO: add more special-case implementations for tensor shapes/strides that can benefit from memcpy + + if (ggml_is_contiguous(dst)) { + if (nb00 == sizeof(ggml_bf16_t)) { + if (dst->type == GGML_TYPE_BF16) { + size_t id = 0; + const size_t rs = ne00 * nb00; + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; + memcpy(dst_ptr + id, src0_ptr, rs); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F16) { + size_t id = 0; + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + for (int i00 = 0; i00 < ne00; i00++) { + dst_ptr[id] = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(src0_ptr[i00])); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + float * dst_ptr = (float *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + for (int i00 = 0; i00 < ne00; i00++) { + dst_ptr[id] = GGML_BF16_TO_FP32(src0_ptr[i00]); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { + ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; + float * src0_f32 = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; + + size_t id = 0; + size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + + for (int i00 = 0; i00 < ne00; i00++) { + src0_f32[i00] = GGML_BF16_TO_FP32(src0_ptr[i00]); + } + + quantize_row_q(src0_f32, dst_ptr + id, ne00); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } else { + //printf("%s: this is not optimal - fix me\n", __func__); + + if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + float * dst_ptr = (float *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = GGML_BF16_TO_FP32(*src0_ptr); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_BF16) { + size_t id = 0; + ggml_bf16_t * dst_ptr = (ggml_bf16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = *src0_ptr; + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F16) { + size_t id = 0; + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(*src0_ptr)); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } + return; + } + + // dst counters + int64_t i10 = 0; + int64_t i11 = 0; + int64_t i12 = 0; + int64_t i13 = 0; + + if (dst->type == GGML_TYPE_BF16) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + memcpy(dst_ptr, src0_ptr, sizeof(ggml_bf16_t)); + + if (++i10 == ne00) { + i10 = 0; + if (++i11 == ne01) { + i11 = 0; + if (++i12 == ne02) { + i12 = 0; + if (++i13 == ne03) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else if (dst->type == GGML_TYPE_F16) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + *(ggml_fp16_t *) dst_ptr = GGML_FP32_TO_FP16(GGML_BF16_TO_FP32(*(const ggml_bf16_t *) src0_ptr)); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else if (dst->type == GGML_TYPE_F32) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + *(float *) dst_ptr = GGML_BF16_TO_FP32(*(const ggml_bf16_t *) src0_ptr); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } +} + +static void ggml_compute_forward_dup_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + + GGML_TENSOR_UNARY_OP_LOCALS + + const int ith = params->ith; // thread index + const int nth = params->nth; // number of threads + + // parallelize by rows + const int nr = ne01; + // number of rows per thread + const int dr = (nr + nth - 1) / nth; + // row range for this thread + const int ir0 = dr * ith; + const int ir1 = MIN(ir0 + dr, nr); + + if (src0->type == dst->type && + ne00 == ne0 && + nb00 == ggml_type_size(src0->type) && nb0 == ggml_type_size(dst->type)) { + // copy by rows + const size_t rs = ne00*nb00; + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ir0; i01 < ir1; i01++) { + memcpy( + ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), + ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), + rs); + } + } + } + return; + } + + if (ggml_is_contiguous(dst)) { + // TODO: simplify + if (nb00 == sizeof(float)) { + if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + const size_t rs = ne00 * nb00; + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; + memcpy(dst_ptr + id, src0_ptr, rs); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else if (ggml_get_type_traits_cpu(dst->type)->from_float) { + ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float; + + size_t id = 0; + size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type)); + char * dst_ptr = (char *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + const float * src0_ptr = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + quantize_row_q(src0_ptr, dst_ptr + id, ne00); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } else { + //printf("%s: this is not optimal - fix me\n", __func__); + + if (dst->type == GGML_TYPE_F32) { + size_t id = 0; + float * dst_ptr = (float *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = *src0_ptr; + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_F16) { + size_t id = 0; + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = GGML_FP32_TO_FP16(*src0_ptr); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else if (dst->type == GGML_TYPE_BF16) { + size_t id = 0; + ggml_bf16_t * dst_ptr = (ggml_bf16_t *) dst->data; + + for (int i03 = 0; i03 < ne03; i03++) { + for (int i02 = 0; i02 < ne02; i02++) { + id += ne00 * ir0; + for (int i01 = ir0; i01 < ir1; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + + dst_ptr[id] = GGML_FP32_TO_BF16(*src0_ptr); + id++; + } + } + id += ne00 * (ne01 - ir1); + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } + } + + return; + } + + // dst counters + + int64_t i10 = 0; + int64_t i11 = 0; + int64_t i12 = 0; + int64_t i13 = 0; + + if (dst->type == GGML_TYPE_F32) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + memcpy(dst_ptr, src0_ptr, sizeof(float)); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else if (dst->type == GGML_TYPE_F16) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + *(ggml_fp16_t *) dst_ptr = GGML_FP32_TO_FP16(*(const float *) src0_ptr); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else if (dst->type == GGML_TYPE_BF16) { + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + i10 += ne00 * ir0; + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + i10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + *(ggml_bf16_t *) dst_ptr = GGML_FP32_TO_BF16(*(const float *) src0_ptr); + + if (++i10 == ne0) { + i10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + i10 += ne00 * (ne01 - ir1); + while (i10 >= ne0) { + i10 -= ne0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + } else { + GGML_ABORT("fatal error"); // TODO: implement + } +} + +// A simplified version of ggml_compute_forward_dup that doesn't do float upcasting, and just plain old memcpy. +static void ggml_compute_forward_dup_bytes( + const ggml_compute_params * params, + ggml_tensor * dst) { + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + GGML_ASSERT(src0->type == dst->type); + + GGML_TENSOR_UNARY_OP_LOCALS; + + if (ggml_is_contiguous(src0) && ggml_is_contiguous(dst)) { + ggml_compute_forward_dup_same_cont(params, dst); + return; + } + + const size_t type_size = ggml_type_size(src0->type); + + const int ith = params->ith; // thread index + const int nth = params->nth; // number of threads + + // parallelize by rows + const int nr = ne01; + // number of rows per thread + const int dr = (nr + nth - 1) / nth; + // row range for this thread + const int ir0 = dr * ith; + const int ir1 = MIN(ir0 + dr, nr); + + if (src0->type == dst->type && + ggml_are_same_shape(src0, dst) && + nb00 == type_size && nb0 == type_size) { + // copy by rows + const size_t rs = ggml_row_size(src0->type, ne00); + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ir0; i01 < ir1; i01++) { + memcpy( + ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), + ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03), + rs); + } + } + } + return; + } + + if (ggml_is_contiguous(dst)) { + size_t id = 0; + char * dst_ptr = (char *) dst->data; + const size_t rs = ne00 * type_size; + + if (nb00 == type_size) { + // src0 is contigous on first dimension, copy by rows + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int64_t i01 = ir0; i01 < ir1; i01++) { + const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03; + memcpy(dst_ptr + id, src0_ptr, rs); + id += rs; + } + id += rs * (ne01 - ir1); + } + } + } else { + //printf("%s: this is not optimal - fix me\n", __func__); + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + id += rs * ir0; + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + const char * src0_ptr = (char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03; + memcpy(dst_ptr + id, src0_ptr, type_size); + + id += type_size; + } + } + id += rs * (ne01 - ir1); + } + } + } + + return; + } + + // dst counters + int64_t k10 = 0; + int64_t i11 = 0; + int64_t i12 = 0; + int64_t i13 = 0; + + // number of blocks in a row + const int64_t nk00 = ne00 / ggml_blck_size(src0->type); + const int64_t nk0 = ne0 / ggml_blck_size(dst->type); + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + k10 += nk00 * ir0; + while (k10 >= nk0) { + k10 -= nk0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + for (int64_t i01 = ir0; i01 < ir1; i01++) { + for (int64_t k00 = 0; k00 < nk00; k00++) { + const char * src0_ptr = ((char *) src0->data + k00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + char * dst_ptr = ((char *) dst->data + k10*nb0 + i11*nb1 + i12*nb2 + i13*nb3); + + memcpy(dst_ptr, src0_ptr, type_size); + + if (++k10 == nk0) { + k10 = 0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } + k10 += nk00 * (ne01 - ir1); + while (k10 >= nk0) { + k10 -= nk0; + if (++i11 == ne1) { + i11 = 0; + if (++i12 == ne2) { + i12 = 0; + if (++i13 == ne3) { + i13 = 0; + } + } + } + } + } + } +} + +static void ggml_compute_forward_dup_q( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const ggml_type type = src0->type; + ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; + + size_t qk = ggml_blck_size(type); + const int64_t nr = ggml_nelements(src1) / qk; + + // destination must be contiguous in the first dimension + GGML_ASSERT(nb10 == ggml_type_size(dst->type)); + // must either have first dimension large enough to hold a row, or fully contiguous + GGML_ASSERT((ne10 % qk) == 0 || ggml_is_contiguous(dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int64_t ir = ir0; ir < ir1; ++ir) { + + uint32_t i = ir * qk; + + const int64_t i03 = i/(ne00 * ne01 * ne02); + const int64_t i02 = (i - i03*ne00*ne01*ne02 )/ (ne00*ne01); + const int64_t i01 = (i - i03*ne00*ne01*ne02 - i02*ne01*ne00) / ne00; + const int64_t i00 = i - i03*ne00*ne01*ne02 - i02*ne01*ne00 - i01*ne00; + const int64_t x_offset = (i00/qk)*nb00 + i01*nb01 + i02*nb02 + i03 * nb03; + + const int64_t i13 = i/(ne10 * ne11 * ne12); + const int64_t i12 = (i - i13*ne10*ne11*ne12) / (ne10*ne11); + const int64_t i11 = (i - i13*ne10*ne11*ne12 - i12*ne10*ne11) / ne10; + const int64_t i10 = i - i13*ne10*ne11*ne12 - i12*ne10*ne11 - i11*ne10; + const int64_t dst_offset = i10*nb10 + i11*nb11 + i12*nb12 + i13*nb13; + + dequantize_row_q( + (const void *) ((char *) src0->data + x_offset), + (float *) ((char *) dst->data + dst_offset), qk); + } +} + +void ggml_compute_forward_dup( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (src0->type == dst->type) { + ggml_compute_forward_dup_bytes(params, dst); + return; + } + + switch (src0->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_dup_f16(params, dst); + } break; + case GGML_TYPE_BF16: + { + ggml_compute_forward_dup_bf16(params, dst); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_dup_f32(params, dst); + } break; + default: + { + if (ggml_is_quantized(src0->type) && dst->type == GGML_TYPE_F32) { + ggml_compute_forward_dup_q(params, dst); + break; + } + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_add + +static void ggml_compute_forward_add_q_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_BINARY_OP_LOCALS + + const int ith = params->ith; + const int nth = params->nth; + + const ggml_type type = src0->type; + const ggml_type dtype = dst->type; + ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; + ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dtype)->from_float; + + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == ggml_type_size(type)); + GGML_ASSERT(nb10 == sizeof(float)); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); + + GGML_ASSERT(ggml_is_quantized(src0->type)); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + float * wdata = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith; + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 indices + const int i03 = ir/(ne02*ne01); + const int i02 = (ir - i03*ne02*ne01)/ne01; + const int i01 = (ir - i03*ne02*ne01 - i02*ne01); + + // src1 and dst are same shape as src0 => same indices + const int i13 = i03; + const int i12 = i02; + const int i11 = i01; + + const int i3 = i03; + const int i2 = i02; + const int i1 = i01; + + void * src0_row = (void *) ((char *) src0->data + (i01*nb01 + i02*nb02 + i03*nb03)); + float * src1_row = (float *)((char *) src1->data + (i11*nb11 + i12*nb12 + i13*nb13)); + void * dst_row = (void *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + + assert(ne00 % 32 == 0); + + // unquantize row from src0 to temp buffer + dequantize_row_q(src0_row, wdata, ne00); + // add src1 + ggml_vec_acc_f32(ne00, wdata, src1_row); + // quantize row to dst + if (quantize_row_q != NULL) { + quantize_row_q(wdata, dst_row, ne00); + } else { + memcpy(dst_row, wdata, ne0*nb0); + } + } +} + +void ggml_compute_forward_add( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + { + ggml_compute_forward_add_non_quantized(params, dst); + } break; + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + { + ggml_compute_forward_add_q_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_add1 + +static void ggml_compute_forward_add1_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT( nb0 == sizeof(float)); + GGML_ASSERT(nb00 == sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + +#ifdef GGML_USE_ACCELERATE + GGML_UNUSED(ggml_vec_add1_f32); + + vDSP_vadd( + (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01), 1, + (float *) ((char *) src1->data), 0, + (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ), 1, + ne0); +#else + ggml_vec_add1_f32(ne0, + (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ), + (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01), + *(float *) src1->data); +#endif + } +} + +static void ggml_compute_forward_add1_f16_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + // scalar to add + const float v = *(float *) src1->data; + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(src0->type == GGML_TYPE_F16); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_F16); + + GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); + ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); + for (int i = 0; i < ne0; i++) { + dst_ptr[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(src0_ptr[i]) + v); + } + } +} + +static void ggml_compute_forward_add1_f16_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + // scalar to add + const float v = GGML_FP16_TO_FP32(*(ggml_fp16_t *) src1->data); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(src0->type == GGML_TYPE_F16); + GGML_ASSERT(src1->type == GGML_TYPE_F16); + GGML_ASSERT(dst->type == GGML_TYPE_F16); + + GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); + ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); + for (int i = 0; i < ne0; i++) { + dst_ptr[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(src0_ptr[i]) + v); + } + } +} + +static void ggml_compute_forward_add1_q_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + // scalar to add + const float v = *(float *) src1->data; + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + const ggml_type type = src0->type; + ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; + ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(type)->from_float; + + // we don't support permuted src0 + GGML_ASSERT(nb00 == ggml_type_size(type)); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); + + GGML_ASSERT(ggml_is_quantized(src0->type)); + GGML_ASSERT(dst->type == src0->type); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + float * wdata = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32) * ith; + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + + void * src0_row = (void *) ((char *) src0->data + (i1*nb01 + i2*nb02 + i3*nb03)); + void * dst_row = (void *) ((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb0 )); + + assert(ne0 % 32 == 0); + + // unquantize row from src0 to temp buffer + dequantize_row_q(src0_row, wdata, ne0); + // add src1 + ggml_vec_acc1_f32(ne0, wdata, v); + // quantize row to dst + quantize_row_q(wdata, dst_row, ne0); + } +} + +static void ggml_compute_forward_add1_bf16_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + // scalar to add + const float v = *(float *) src1->data; + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(src0->type == GGML_TYPE_BF16); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_BF16); + + GGML_ASSERT( nb0 == sizeof(ggml_bf16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_bf16_t)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + + ggml_bf16_t * dst_ptr = (ggml_bf16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); + ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); + for (int i = 0; i < ne0; i++) { + dst_ptr[i] = GGML_FP32_TO_BF16(GGML_BF16_TO_FP32(src0_ptr[i]) + v); + } + } +} + +static void ggml_compute_forward_add1_bf16_bf16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_scalar(src1)); + + // scalar to add + const float v = GGML_BF16_TO_FP32(*(ggml_bf16_t *) src1->data); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(src0->type == GGML_TYPE_BF16); + GGML_ASSERT(src1->type == GGML_TYPE_BF16); + GGML_ASSERT(dst->type == GGML_TYPE_BF16); + + GGML_ASSERT( nb0 == sizeof(ggml_bf16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_bf16_t)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are same shape => same indices + const int i3 = ir/(ne2*ne1); + const int i2 = (ir - i3*ne2*ne1)/ne1; + const int i1 = (ir - i3*ne2*ne1 - i2*ne1); + + ggml_bf16_t * dst_ptr = (ggml_bf16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 ); + ggml_bf16_t * src0_ptr = (ggml_bf16_t *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01); + for (int i = 0; i < ne0; i++) { + dst_ptr[i] = GGML_FP32_TO_BF16(GGML_BF16_TO_FP32(src0_ptr[i]) + v); + } + } +} + +void ggml_compute_forward_add1( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_add1_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + if (src1->type == GGML_TYPE_F16) { + ggml_compute_forward_add1_f16_f16(params, dst); + } + else if (src1->type == GGML_TYPE_F32) { + ggml_compute_forward_add1_f16_f32(params, dst); + } + else { + GGML_ABORT("fatal error"); + } + } break; + case GGML_TYPE_BF16: + { + if (src1->type == GGML_TYPE_BF16) { + ggml_compute_forward_add1_bf16_bf16(params, dst); + } + else if (src1->type == GGML_TYPE_F32) { + ggml_compute_forward_add1_bf16_f32(params, dst); + } + else { + GGML_ABORT("fatal error"); + } + } break; + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q8_1: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + { + ggml_compute_forward_add1_q_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_acc + +static void ggml_compute_forward_acc_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); + + // view src0 and dst with these strides and data offset inbytes during acc + // nb0 is implicitly element_size because src0 and dst are contiguous + size_t nb1 = ((int32_t *) dst->op_params)[0]; + size_t nb2 = ((int32_t *) dst->op_params)[1]; + size_t nb3 = ((int32_t *) dst->op_params)[2]; + size_t offset = ((int32_t *) dst->op_params)[3]; + bool inplace = (bool) ((int32_t *) dst->op_params)[4]; + + if (!inplace) { + if (params->ith == 0) { + // memcpy needs to be synchronized across threads to avoid race conditions. + // => do it in INIT phase + memcpy( + ((char *) dst->data), + ((char *) src0->data), + ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + } + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src1); + const int nc = src1->ne[0]; + + GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) + GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) + + // src0 and dst as viewed during acc + const size_t nb0 = ggml_element_size(src0); + + const size_t nb00 = nb0; + const size_t nb01 = nb1; + const size_t nb02 = nb2; + const size_t nb03 = nb3; + + GGML_ASSERT(offset + (ne10 == 0 ? 0 : ne10-1)*nb0 + (ne11 == 0 ? 0 : ne11-1)*nb1 + (ne12 == 0 ? 0 : ne12-1)*nb2 + (ne13 == 0 ? 0 : ne13-1)*nb3 < ggml_nbytes(dst)); + GGML_ASSERT(offset + (ne10 == 0 ? 0 : ne10-1)*nb00 + (ne11 == 0 ? 0 : ne11-1)*nb01 + (ne12 == 0 ? 0 : ne12-1)*nb02 + (ne13 == 0 ? 0 : ne13-1)*nb03 < ggml_nbytes(src0)); + + GGML_ASSERT(nb10 == sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are viewed with shape of src1 and offset + // => same indices + const int i3 = ir/(ne12*ne11); + const int i2 = (ir - i3*ne12*ne11)/ne11; + const int i1 = (ir - i3*ne12*ne11 - i2*ne11); + +#ifdef GGML_USE_ACCELERATE + vDSP_vadd( + (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + offset), 1, + (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11), 1, + (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), 1, nc); +#else + ggml_vec_add_f32(nc, + (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), + (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + offset), + (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); +#endif + } +} + +void ggml_compute_forward_acc( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_acc_f32(params, dst); + } break; + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q8_1: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_sum + +static void ggml_compute_forward_sum_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_scalar(dst)); + assert(src0->nb[0] == sizeof(float)); + + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) + GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) + + ggml_float sum = 0; + ggml_float row_sum = 0; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + ggml_vec_sum_f32_ggf(ne00, + &row_sum, + (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); + sum += row_sum; + } + } + } + ((float *) dst->data)[0] = sum; +} + +static void ggml_compute_forward_sum_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_scalar(dst)); + + assert(src0->nb[0] == sizeof(ggml_fp16_t)); + + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) + GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) + + float sum = 0; + float row_sum = 0; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + ggml_vec_sum_f16_ggf(ne00, + &row_sum, + (ggml_fp16_t *) ((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03)); + sum += row_sum; + } + } + } + ((ggml_fp16_t *) dst->data)[0] = GGML_FP32_TO_FP16(sum); +} + +static void ggml_compute_forward_sum_bf16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_scalar(dst)); + + assert(src0->nb[0] == sizeof(ggml_bf16_t)); + + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) + GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) + + float sum = 0; + float row_sum = 0; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + ggml_vec_sum_bf16_ggf(ne00, + &row_sum, + (ggml_bf16_t *) ((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03)); + sum += row_sum; + } + } + } + ((ggml_bf16_t *) dst->data)[0] = GGML_FP32_TO_BF16(sum); +} + +void ggml_compute_forward_sum( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_sum_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_sum_f16(params, dst); + } break; + case GGML_TYPE_BF16: + { + ggml_compute_forward_sum_bf16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_sum_rows + +static void ggml_compute_forward_sum_rows_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_ASSERT(dst->nb[0] == sizeof(float)); + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(ne0 == 1); + GGML_ASSERT(ne1 == ne01); + GGML_ASSERT(ne2 == ne02); + GGML_ASSERT(ne3 == ne03); + + for (int64_t i3 = 0; i3 < ne03; i3++) { + for (int64_t i2 = 0; i2 < ne02; i2++) { + for (int64_t i1 = 0; i1 < ne01; i1++) { + float * src_row = (float *) ((char *) src0->data + i1*nb01 + i2*nb02 + i3*nb03); + float * dst_row = (float *) ((char *) dst->data + i1*nb1 + i2*nb2 + i3*nb3); + float row_sum = 0; + ggml_vec_sum_f32(ne00, &row_sum, src_row); + dst_row[0] = row_sum; + } + } + } +} + +void ggml_compute_forward_sum_rows( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_sum_rows_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_mean + +static void ggml_compute_forward_mean_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(src0->nb[0] == sizeof(float)); + + GGML_TENSOR_UNARY_OP_LOCALS + + assert(ne0 == 1); + assert(ne1 == ne01); + assert(ne2 == ne02); + assert(ne3 == ne03); + + GGML_UNUSED(ne0); + GGML_UNUSED(ne1); + GGML_UNUSED(ne2); + GGML_UNUSED(ne3); + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + ggml_vec_sum_f32(ne00, + (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), + (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); + + *(float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3) /= (float) ne00; + } + } + } +} + +void ggml_compute_forward_mean( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_mean_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_argmax + +static void ggml_compute_forward_argmax_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(src0->nb[0] == sizeof(float)); + assert(dst->nb[0] == sizeof(float)); + + const int64_t ne00 = src0->ne[0]; + const int64_t ne01 = src0->ne[1]; + + const size_t nb01 = src0->nb[1]; + const size_t nb0 = dst->nb[0]; + + for (int64_t i1 = 0; i1 < ne01; i1++) { + float * src = (float *) ((char *) src0->data + i1*nb01); + int32_t * dst_ = (int32_t *) ((char *) dst->data + i1*nb0); + int v = 0; + ggml_vec_argmax_f32(ne00, &v, src); + dst_[0] = v; + } +} + +void ggml_compute_forward_argmax( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_argmax_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_count_equal + +static void ggml_compute_forward_count_equal_i32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS; + + GGML_ASSERT(src0->type == GGML_TYPE_I32); + GGML_ASSERT(src1->type == GGML_TYPE_I32); + GGML_ASSERT(ggml_are_same_shape(src0, src1)); + GGML_ASSERT(ggml_is_scalar(dst)); + GGML_ASSERT(dst->type == GGML_TYPE_I64); + + const int64_t nr = ggml_nrows(src0); + + const int ith = params->ith; + const int nth = params->nth; + + int64_t * sums = (int64_t *) params->wdata; + int64_t sum_thread = 0; + + // rows per thread + const int64_t dr = (nr + nth - 1)/nth; + + // row range for this thread + const int64_t ir0 = dr*ith; + const int64_t ir1 = MIN(ir0 + dr, nr); + + for (int64_t ir = ir0; ir < ir1; ++ir) { + const int64_t i03 = ir / (ne02*ne01); + const int64_t i02 = (ir - i03*ne03) / ne01; + const int64_t i01 = ir - i03*ne03 - i02*ne02; + + const char * data0 = (const char *) src0->data + i03*nb03 + i02*nb02 + i01*nb01; + const char * data1 = (const char *) src1->data + i03*nb13 + i02*nb12 + i01*nb11; + + for (int64_t i00 = 0; i00 < ne00; ++i00) { + const int32_t val0 = *((const int32_t *) (data0 + i00*nb00)); + const int32_t val1 = *((const int32_t *) (data1 + i00*nb10)); + + sum_thread += val0 == val1; + } + } + if (ith != 0) { + sums[ith] = sum_thread; + } + ggml_barrier(params->threadpool); + + if (ith != 0) { + return; + } + + for (int ith_other = 1; ith_other < nth; ++ith_other) { + sum_thread += sums[ith_other]; + } + *((int64_t *) dst->data) = sum_thread; +} + +void ggml_compute_forward_count_equal( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_I32: + { + ggml_compute_forward_count_equal_i32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_repeat + +static void ggml_compute_forward_repeat_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(ggml_can_repeat(src0, dst)); + + GGML_TENSOR_UNARY_OP_LOCALS + + // guaranteed to be an integer due to the check in ggml_can_repeat + const int nr0 = (int)(ne0/ne00); + const int nr1 = (int)(ne1/ne01); + const int nr2 = (int)(ne2/ne02); + const int nr3 = (int)(ne3/ne03); + + // TODO: support for transposed / permuted tensors + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb00 == sizeof(float)); + + // TODO: maybe this is not optimal? + for (int i3 = 0; i3 < nr3; i3++) { + for (int k3 = 0; k3 < ne03; k3++) { + for (int i2 = 0; i2 < nr2; i2++) { + for (int k2 = 0; k2 < ne02; k2++) { + for (int i1 = 0; i1 < nr1; i1++) { + for (int k1 = 0; k1 < ne01; k1++) { + for (int i0 = 0; i0 < nr0; i0++) { + ggml_vec_cpy_f32(ne00, + (float *) ((char *) dst->data + (i3*ne03 + k3)*nb3 + (i2*ne02 + k2)*nb2 + (i1*ne01 + k1)*nb1 + (i0*ne00)*nb0), + (float *) ((char *) src0->data + ( k3)*nb03 + ( k2)*nb02 + ( k1)*nb01)); + } + } + } + } + } + } + } +} + +static void ggml_compute_forward_repeat_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(ggml_can_repeat(src0, dst)); + + GGML_TENSOR_UNARY_OP_LOCALS + + // guaranteed to be an integer due to the check in ggml_can_repeat + const int nr0 = (int)(ne0/ne00); + const int nr1 = (int)(ne1/ne01); + const int nr2 = (int)(ne2/ne02); + const int nr3 = (int)(ne3/ne03); + + // TODO: support for transposed / permuted tensors + GGML_ASSERT(nb0 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + + // TODO: maybe this is not optimal? + for (int i3 = 0; i3 < nr3; i3++) { + for (int k3 = 0; k3 < ne03; k3++) { + for (int i2 = 0; i2 < nr2; i2++) { + for (int k2 = 0; k2 < ne02; k2++) { + for (int i1 = 0; i1 < nr1; i1++) { + for (int k1 = 0; k1 < ne01; k1++) { + for (int i0 = 0; i0 < nr0; i0++) { + ggml_fp16_t * y = (ggml_fp16_t *) ((char *) dst->data + (i3*ne03 + k3)*nb3 + (i2*ne02 + k2)*nb2 + (i1*ne01 + k1)*nb1 + (i0*ne00)*nb0); + ggml_fp16_t * x = (ggml_fp16_t *) ((char *) src0->data + ( k3)*nb03 + ( k2)*nb02 + ( k1)*nb01); + // ggml_vec_cpy_f16(ne00, y, x) + for (int i = 0; i < ne00; ++i) { + y[i] = x[i]; + } + } + } + } + } + } + } + } +} + +void ggml_compute_forward_repeat( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_I16: + { + ggml_compute_forward_repeat_f16(params, dst); + } break; + case GGML_TYPE_F32: + case GGML_TYPE_I32: + { + ggml_compute_forward_repeat_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_repeat_back + +static void ggml_compute_forward_repeat_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(ggml_can_repeat(dst, src0)); + + GGML_TENSOR_UNARY_OP_LOCALS + + // guaranteed to be an integer due to the check in ggml_can_repeat + const int nr0 = (int)(ne00/ne0); + const int nr1 = (int)(ne01/ne1); + const int nr2 = (int)(ne02/ne2); + const int nr3 = (int)(ne03/ne3); + + // TODO: support for transposed / permuted tensors + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb00 == sizeof(float)); + + if (ggml_is_contiguous(dst)) { + ggml_vec_set_f32(ne0*ne1*ne2*ne3, (float *)dst->data, 0); + } else { + for (int k3 = 0; k3 < ne3; k3++) { + for (int k2 = 0; k2 < ne2; k2++) { + for (int k1 = 0; k1 < ne1; k1++) { + ggml_vec_set_f32(ne0, + (float *) ((char *) dst->data + k1*nb1 + k2*nb2 + k3*nb3), + 0); + } + } + } + } + + // TODO: maybe this is not optimal? + for (int i3 = 0; i3 < nr3; i3++) { + for (int k3 = 0; k3 < ne3; k3++) { + for (int i2 = 0; i2 < nr2; i2++) { + for (int k2 = 0; k2 < ne2; k2++) { + for (int i1 = 0; i1 < nr1; i1++) { + for (int k1 = 0; k1 < ne1; k1++) { + for (int i0 = 0; i0 < nr0; i0++) { + ggml_vec_acc_f32(ne0, + (float *) ((char *) dst->data + ( k3)*nb3 + ( k2)*nb2 + ( k1)*nb1), + (float *) ((char *) src0->data + (i3*ne3 + k3)*nb03 + (i2*ne2 + k2)*nb02 + (i1*ne1 + k1)*nb01 + (i0*ne0)*nb00)); + } + } + } + } + } + } + } +} + +void ggml_compute_forward_repeat_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_repeat_back_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_concat + +static void ggml_compute_forward_concat_any( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + const size_t len = ggml_type_size(src0->type); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int32_t dim = ggml_get_op_params_i32(dst, 0); + + GGML_ASSERT(dim >= 0 && dim < 4); + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = src0->ne[dim]; + + const char * x; + + // TODO: smarter multi-theading + for (int i3 = 0; i3 < ne3; i3++) { + for (int i2 = ith; i2 < ne2; i2 += nth) { + for (int i1 = 0; i1 < ne1; i1++) { + for (int i0 = 0; i0 < ne0; i0++) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03; + } else { + x = (const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13; + } + + char * y = (char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3; + + memcpy(y, x, len); + } + } + } + } +} + +static void ggml_compute_forward_concat_i8( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_type_size(src0->type) == sizeof(int8_t)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int32_t dim = ggml_get_op_params_i32(dst, 0); + + GGML_ASSERT(dim >= 0 && dim < 4); + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = src0->ne[dim]; + + const int8_t * x; + + // TODO: smarter multi-theading + for (int i3 = 0; i3 < ne3; i3++) { + for (int i2 = ith; i2 < ne2; i2 += nth) { + for (int i1 = 0; i1 < ne1; i1++) { + for (int i0 = 0; i0 < ne0; i0++) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (const int8_t *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); + } else { + x = (const int8_t *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); + } + + int8_t * y = (int8_t *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); + + *y = *x; + } + } + } + } +} + +static void ggml_compute_forward_concat_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_type_size(src0->type) == sizeof(ggml_fp16_t)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int32_t dim = ggml_get_op_params_i32(dst, 0); + + GGML_ASSERT(dim >= 0 && dim < 4); + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = src0->ne[dim]; + + const ggml_fp16_t * x; + + // TODO: smarter multi-theading + for (int i3 = 0; i3 < ne3; i3++) { + for (int i2 = ith; i2 < ne2; i2 += nth) { + for (int i1 = 0; i1 < ne1; i1++) { + for (int i0 = 0; i0 < ne0; i0++) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (const ggml_fp16_t *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); + } else { + x = (const ggml_fp16_t *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); + } + + ggml_fp16_t * y = (ggml_fp16_t *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); + + *y = *x; + } + } + } + } +} + +static void ggml_compute_forward_concat_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_type_size(src0->type) == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int32_t dim = ggml_get_op_params_i32(dst, 0); + + GGML_ASSERT(dim >= 0 && dim < 4); + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = src0->ne[dim]; + + const float * x; + + // TODO: smarter multi-theading + for (int i3 = 0; i3 < ne3; i3++) { + for (int i2 = ith; i2 < ne2; i2 += nth) { + for (int i1 = 0; i1 < ne1; i1++) { + for (int i0 = 0; i0 < ne0; i0++) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (const float *) ((const char *)src0->data + (i0 )*nb00 + (i1 )*nb01 + (i2 )*nb02 + (i3 )*nb03); + } else { + x = (const float *) ((const char *)src1->data + (i0 - o[0])*nb10 + (i1 - o[1])*nb11 + (i2 - o[2])*nb12 + (i3 - o[3])*nb13); + } + + float * y = (float *)((char *)dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); + + *y = *x; + } + } + } + } +} + +void ggml_compute_forward_concat( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_I16: + { + ggml_compute_forward_concat_f16(params, dst); + } break; + case GGML_TYPE_I8: + { + ggml_compute_forward_concat_i8(params, dst); + } break; + case GGML_TYPE_F32: + case GGML_TYPE_I32: + { + ggml_compute_forward_concat_f32(params, dst); + } break; + default: + { + ggml_compute_forward_concat_any(params, dst); + } + } +} + +// ggml_compute_forward_gelu + +static void ggml_compute_forward_gelu_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_gelu_f32(nc, + (float *) ((char *) dst->data + i1*( dst->nb[1])), + (float *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + GGML_UNUSED(x); + assert(!isnan(x)); + assert(!isinf(x)); + } +#endif + } +} + +static void ggml_compute_forward_gelu_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_gelu_f16(nc, + (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), + (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + const float v = GGML_FP16_TO_FP32(x); + GGML_UNUSED(v); + assert(!isnan(v)); + assert(!isinf(v)); + } +#endif + } +} + +static void ggml_compute_forward_gelu( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_gelu_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_gelu_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_gelu_quick + +static void ggml_compute_forward_gelu_quick_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_gelu_quick_f32(nc, + (float *) ((char *) dst->data + i1*( dst->nb[1])), + (float *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + GGML_UNUSED(x); + assert(!isnan(x)); + assert(!isinf(x)); + } +#endif + } +} + +static void ggml_compute_forward_gelu_quick_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_gelu_quick_f16(nc, + (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), + (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + const float v = GGML_FP16_TO_FP32(x); + GGML_UNUSED(v); + assert(!isnan(v)); + assert(!isinf(v)); + } +#endif + } +} + +static void ggml_compute_forward_gelu_quick( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_gelu_quick_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_gelu_quick_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_silu + +static void ggml_compute_forward_silu_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_silu_f32(nc, + (float *) ((char *) dst->data + i1*( dst->nb[1])), + (float *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const float x = ((float *) ((char *) dst->data + i1*(dst->nb[1])))[k]; + GGML_UNUSED(x); + assert(!isnan(x)); + assert(!isinf(x)); + } +#endif + } +} + +static void ggml_compute_forward_silu_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_silu_f16(nc, + (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), + (ggml_fp16_t *) ((char *) src0->data + i1*(src0->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*(dst->nb[1])))[k]; + const float v = GGML_FP16_TO_FP32(x); + GGML_UNUSED(v); + assert(!isnan(v)); + assert(!isinf(v)); + } +#endif + } +} + +static void ggml_compute_forward_silu( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_silu_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_silu_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} +// ggml_compute_forward_leaky_relu + +static void ggml_compute_forward_leaky_relu_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + float negative_slope; + memcpy(&negative_slope, dst->op_params, sizeof(float)); + + assert(dst->nb[0] == sizeof(float)); + assert(src0->nb[0] == sizeof(float)); + + for (int i = 0; i < n; i++) { + ggml_vec_leaky_relu_f32(nc, + (float *) ((char *) dst->data + i*( dst->nb[1])), + (float *) ((char *) src0->data + i*(src0->nb[1])), negative_slope); + } +} + +static void ggml_compute_forward_leaky_relu_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + float negative_slope; + memcpy(&negative_slope, dst->op_params, sizeof(float)); + + assert(dst->nb[0] == sizeof(ggml_fp16_t)); + assert(src0->nb[0] == sizeof(ggml_fp16_t)); + + for (int i = 0; i < n; i++) { + ggml_vec_leaky_relu_f16(nc, + (ggml_fp16_t *) ((char *) dst->data + i*( dst->nb[1])), + (ggml_fp16_t *) ((char *) src0->data + i*(src0->nb[1])), negative_slope); + } +} + +void ggml_compute_forward_leaky_relu( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_leaky_relu_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_leaky_relu_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_silu_back + +static void ggml_compute_forward_silu_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * grad = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + assert(ggml_is_contiguous_1(grad)); + assert(ggml_is_contiguous_1(src1)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src1, dst)); + assert(ggml_are_same_shape(src1, grad)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src1->ne[0]; + const int nr = ggml_nrows(src1); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_silu_backward_f32(nc, + (float *) ((char *) dst->data + i1*( dst->nb[1])), + (float *) ((char *) src1->data + i1*(src1->nb[1])), + (float *) ((char *) grad->data + i1*(grad->nb[1]))); + +#ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + GGML_UNUSED(x); + assert(!isnan(x)); + assert(!isinf(x)); + } +#endif + } +} + +static void ggml_compute_forward_silu_back_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * grad = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + assert(ggml_is_contiguous_1(grad)); + assert(ggml_is_contiguous_1(src1)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src1, dst)); + assert(ggml_are_same_shape(src1, grad)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src1->ne[0]; + const int nr = ggml_nrows(src1); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + ggml_vec_silu_backward_f16(nc, + (ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])), + (ggml_fp16_t *) ((char *) src1->data + i1*(src1->nb[1])), + (ggml_fp16_t *) ((char *) grad->data + i1*(grad->nb[1]))); + + #ifndef NDEBUG + for (int k = 0; k < nc; k++) { + const float x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k]; + const float v = GGML_FP16_TO_FP32(x); + GGML_UNUSED(v); + assert(!isnan(v)); + assert(!isinf(v)); + } + #endif + } +} + +void ggml_compute_forward_silu_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_silu_back_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_silu_back_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_norm + +static void ggml_compute_forward_norm_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + float eps; + memcpy(&eps, dst->op_params, sizeof(float)); + + GGML_ASSERT(eps >= 0.0f); + + // TODO: optimize + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ith; i01 < ne01; i01 += nth) { + const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + + ggml_float sum = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + sum += (ggml_float)x[i00]; + } + + float mean = sum/ne00; + + float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); + + ggml_float sum2 = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + float v = x[i00] - mean; + y[i00] = v; + sum2 += (ggml_float)(v*v); + } + + float variance = sum2/ne00; + const float scale = 1.0f/sqrtf(variance + eps); + + ggml_vec_scale_f32(ne00, y, scale); + } + } + } +} + +void ggml_compute_forward_norm( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_norm_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_group_rms_norm + +static void ggml_compute_forward_rms_norm_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + float eps; + memcpy(&eps, dst->op_params, sizeof(float)); + + GGML_ASSERT(eps >= 0.0f); + + // TODO: optimize + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ith; i01 < ne01; i01 += nth) { + const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + + ggml_float sum = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + sum += (ggml_float)(x[i00] * x[i00]); + } + + const float mean = sum/ne00; + + float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); + + memcpy(y, x, ne00 * sizeof(float)); + // for (int i00 = 0; i00 < ne00; i00++) { + // y[i00] = x[i00]; + // } + + const float scale = 1.0f/sqrtf(mean + eps); + + ggml_vec_scale_f32(ne00, y, scale); + } + } + } +} + +void ggml_compute_forward_rms_norm( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_rms_norm_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +static void ggml_compute_forward_rms_norm_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; // gradients from forward pass output + const ggml_tensor * src1 = dst->src[1]; // src1 from forward pass + + GGML_ASSERT(ggml_are_same_shape(src0, dst) && ggml_are_same_shape(src0, src1)); + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_ASSERT(src1->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_BINARY_OP_LOCALS + + float eps; + memcpy(&eps, dst->op_params, sizeof(float)); + + // TODO: optimize + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ith; i01 < ne01; i01 += nth) { + // src1 is same shape as src0 => same indices + const int64_t i11 = i01; + const int64_t i12 = i02; + const int64_t i13 = i03; + + const float * dz = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + const float * x = (float *) ((char *) src1->data + i11*nb11 + i12*nb12 + i13*nb13); + + ggml_float sum_xx = 0.0; + ggml_float sum_xdz = 0.0; + + for (int64_t i00 = 0; i00 < ne00; i00++) { + sum_xx += (ggml_float)(x[i00] * x[i00]); + sum_xdz += (ggml_float)(x[i00] * dz[i00]); + } + + //const float mean = (float)(sum_xx)/ne00; + const float mean_eps = (float)(sum_xx)/ne00 + eps; + const float sum_eps = (float)(sum_xx) + eps*ne00; + //const float mean_xdz = (float)(sum_xdz)/ne00; + // we could cache rms from forward pass to improve performance. + // to do this implement ggml_rms and compose ggml_rms_norm using ggml_rms. + //const float rms = sqrtf(mean_eps); + const float rrms = 1.0f / sqrtf(mean_eps); + //const float scale = -rrms/(ne00 * mean_eps); // -1/(n*rms**3) + + { + // z = rms_norm(x) + // + // rms_norm(src1) = + // scale( + // src1, + // div( + // 1, + // sqrt( + // add( + // scale( + // sum( + // sqr( + // src1)), + // (1.0/N)), + // eps)))); + + // postorder: + // ## op args grad + // 00 param src1 grad[#00] + // 01 const 1 + // 02 sqr (#00) grad[#02] + // 03 sum (#02) grad[#03] + // 04 const 1/N + // 05 scale (#03, #04) grad[#05] + // 06 const eps + // 07 add (#05, #06) grad[#07] + // 08 sqrt (#07) grad[#08] + // 09 div (#01,#08) grad[#09] + // 10 scale (#00,#09) grad[#10] + // + // backward pass, given grad[#10] + // #10: scale + // grad[#00] += scale(grad[#10],#09) + // grad[#09] += sum(mul(grad[#10],#00)) + // #09: div + // grad[#08] += neg(mul(grad[#09], div(#09,#08))) + // #08: sqrt + // grad[#07] += mul(grad[#08], div(0.5, #08)) + // #07: add + // grad[#05] += grad[#07] + // #05: scale + // grad[#03] += scale(grad[#05],#04) + // #03: sum + // grad[#02] += repeat(grad[#03], #02) + // #02: + // grad[#00] += scale(mul(#00, grad[#02]), 2.0) + // + // substitute and simplify: + // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, grad[#02]), 2.0) + // grad[#02] = repeat(grad[#03], #02) + // grad[#02] = repeat(scale(grad[#05],#04), #02) + // grad[#02] = repeat(scale(grad[#07],#04), #02) + // grad[#02] = repeat(scale(mul(grad[#08], div(0.5, #08)),#04), #02) + // grad[#02] = repeat(scale(mul(neg(mul(grad[#09], div(#09,#08))), div(0.5, #08)),#04), #02) + // grad[#02] = repeat(scale(mul(neg(mul(sum(mul(grad[#10],#00)), div(#09,#08))), div(0.5, #08)),#04), #02) + // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(#09,#08) * div(0.5, #08) * (1/N)), #02) + // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(div(#01,#08),#08) * div(0.5, #08) * (1/N)), #02) + // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(1,#08*#08) * div(0.5, #08) * (1/N)), #02) + // grad[#02] = repeat(-(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N)), #02) + // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, grad[#02]), 2.0) + // grad[#00] = scale(grad(#10), #09) + scale(mul(#00, repeat(-(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N)), #02)), 2.0) + // grad[#00] = scale(grad(#10), #09) + scale(scale(#00, -(sum(mul(grad[#10],#00)) * div(1,#07) * div(0.5, #08) * (1/N))), 2.0) + // grad[#00] = scale(grad(#10), #09) + scale(#00, -(sum(mul(grad[#10],#00)) * div(1,#07) * div(1,#08) * (1/N))) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,#07*#08) * (-1/N)) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,#07*#08) * (-1/N)) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(1,mean_eps*rms) * (-1/N)) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*mean_eps)) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*(sum_xx/N+eps))) + // grad[#00] = scale(grad(#10), #09) + scale(#00, sum(mul(grad[#10],#00)) * div(-1,rms*N*sum_xx+rms*N*eps)) + // grad[#00] = scale(dz, rrms) + scale(x, sum(mul(dz,x)) * div(-1,rms*N*mean_eps)) + // grad[#00] = scale(dz, rrms) + scale(x, sum_xdz * div(-1,rms*N*mean_eps)) + // a = b*c + d*e + // a = b*c*f/f + d*e*f/f + // a = (b*c*f + d*e*f)*(1/f) + // a = (b*c*(1/c) + d*e*(1/c))*(1/(1/c)) + // a = (b + d*e/c)*c + // b = dz, c = rrms, d = x, e = sum_xdz * div(-1,rms*N*mean_eps) + // a = (dz + x*sum_xdz * div(-1,rms*N*mean_eps)/rrms)*rrms + // a = (dz + x*sum_xdz * div(-1,rms*N*mean_eps)*rms)*rrms + // a = (dz + x*sum_xdz * div(-rms,rms*N*mean_eps))*rrms + // a = (dz + x*sum_xdz * div(-1,N*mean_eps))*rrms + // a = (dz + x*div(-sum_xdz,N*mean_eps))*rrms + // a = (dz + x*div(-mean_xdz,mean_eps))*rrms + // grad[#00] = scale(dz + scale(x, div(-mean_xdz,mean_eps)),rrms) + // grad[#00] = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) + // dx = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) + } + // dx = scale(dz + scale(x, -mean_xdz/mean_eps),rrms) + // post-order: + // dx := x + // dx := scale(dx,-mean_xdz/mean_eps) + // dx := add(dx, dz) + // dx := scale(dx, rrms) + float * dx = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); + + // dx[i00] = (x*(-sum_xdz/sum_eps) + dz) / sqrtf(mean_eps) + ggml_vec_cpy_f32 (ne00, dx, x); + // ggml_vec_scale_f32(ne00, dx, -mean_xdz/mean_eps); + ggml_vec_scale_f32(ne00, dx, (float)(-sum_xdz)/sum_eps); + ggml_vec_acc_f32 (ne00, dx, dz); + ggml_vec_scale_f32(ne00, dx, rrms); + } + } + } +} + +void ggml_compute_forward_rms_norm_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_rms_norm_back_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_group_norm + +static void ggml_compute_forward_group_norm_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + // TODO: optimize + + float eps; + memcpy(&eps, dst->op_params + 1, sizeof(float)); + + int n_channels = src0->ne[2]; + int n_groups = dst->op_params[0]; + int n_channels_per_group = (n_channels + n_groups - 1) / n_groups; + for (int i = ith; i < n_groups; i += nth) { + int start = i * n_channels_per_group; + int end = start + n_channels_per_group; + if (end > n_channels) { + end = n_channels; + } + int step = end - start; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + ggml_float sum = 0.0; + for (int64_t i02 = start; i02 < end; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + const float * x = (float *)((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03); + + ggml_float sumr = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + sumr += (ggml_float)x[i00]; + } + sum += sumr; + } + } + const float mean = sum / (ne00 * ne01 * step); + + ggml_float sum2 = 0.0; + for (int64_t i02 = start; i02 < end; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + const float * x = (float *)((char *) src0->data + i01 * nb01 + i02 * nb02 + i03 * nb03); + + float * y = (float *)((char *) dst->data + i01 * nb1 + i02 * nb2 + i03 * nb3); + + ggml_float sumr = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + float v = x[i00] - mean; + y[i00] = v; + sumr += (ggml_float)(v * v); + } + sum2 += sumr; + } + } + const float variance = sum2 / (ne00 * ne01 * step); + const float scale = 1.0f / sqrtf(variance + eps); + + for (int64_t i02 = start; i02 < end; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + float * y = (float *)((char *) dst->data + i01 * nb1 + i02 * nb2 + i03 * nb3); + ggml_vec_scale_f32(ne00, y, scale); + } + } + } + } +} + +void ggml_compute_forward_group_norm( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_group_norm_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_l2_norm + +static void ggml_compute_forward_l2_norm_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + float eps; + memcpy(&eps, dst->op_params, sizeof(float)); + + GGML_ASSERT(eps >= 0.0f); + + // TODO: optimize + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = ith; i01 < ne01; i01 += nth) { + const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); + + ggml_float sum = 0.0; + for (int64_t i00 = 0; i00 < ne00; i00++) { + sum += (ggml_float)(x[i00] * x[i00]); + } + + float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); + + memcpy(y, x, ne00 * sizeof(float)); + + const float scale = 1.0f/fmaxf(sqrtf(sum), eps); + + ggml_vec_scale_f32(ne00, y, scale); + } + } + } +} + +void ggml_compute_forward_l2_norm( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_l2_norm_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_out_prod + +static void ggml_compute_forward_out_prod_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + GGML_ASSERT(dst->type == GGML_TYPE_F32); + GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_ASSERT(ne0 == ne00); + GGML_ASSERT(ne1 == ne10); + GGML_ASSERT(ne2 == ne12); + GGML_ASSERT(ne3 == ne13); + + GGML_ASSERT(ne2 % ne02 == 0); + GGML_ASSERT(ne3 % ne03 == 0); + + // we don't support permuted src0 or src1 + GGML_ASSERT(nb00 == sizeof(float)); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + // GGML_ASSERT(nb0 <= nb1); + // GGML_ASSERT(nb1 <= nb2); + // GGML_ASSERT(nb2 <= nb3); + + // nb01 >= nb00 - src0 is not transposed + // compute by src0 rows + + if (ith == 0) { + ggml_vec_set_f32(ne0*ne1*ne2*ne3, (float *)dst->data, 0); + } + ggml_barrier(params->threadpool); + + // dst[:,:,:,:] = 0 + // for i2,i3: + // for i1: + // for i01: + // for i0: + // dst[i0,i1,i2,i3] += src0[i0,i01,i2,i3] * src1[i1,i01,i2,i3] + + // parallelize by last three dimensions + + // total rows in dst + const int64_t nr = ne1*ne2*ne3; + + // rows per thread + const int64_t dr = (nr + nth - 1)/nth; + + // row range for this thread + const int64_t ir0 = dr*ith; + const int64_t ir1 = MIN(ir0 + dr, nr); + + // block-tiling attempt + const int64_t blck_0 = MAX(GGML_VEC_MAD_UNROLL, 32); + const int64_t blck_1 = 16; + + // dps == dst per src0, used for group query attention + const int64_t dps2 = ne2 / ne02; + const int64_t dps3 = ne3 / ne03; + + for (int64_t bir = ir0; bir < ir1; bir += blck_1) { + const int64_t bir1 = MIN(bir + blck_1, ir1); + for (int64_t bi01 = 0; bi01 < ne01; bi01 += blck_0) { + const int64_t bne01 = MIN(bi01 + blck_0, ne01); + for (int64_t ir = bir; ir < bir1; ++ir) { + // dst indices + const int64_t i3 = ir/(ne2*ne1); + const int64_t i2 = (ir - i3*ne2*ne1)/ne1; + const int64_t i1 = (ir - i3*ne2*ne1 - i2*ne1); + + const int64_t i02 = i2 / dps2; + const int64_t i03 = i3 / dps3; + + //const int64_t i10 = i1; + const int64_t i12 = i2; + const int64_t i13 = i3; + +#if GGML_VEC_MAD_UNROLL > 2 + const int64_t bne01_unroll = bne01 - (bne01 % GGML_VEC_MAD_UNROLL); + for (int64_t i01 = bi01; i01 < bne01_unroll; i01 += GGML_VEC_MAD_UNROLL) { + const int64_t i11 = i01; + + float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); + float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + + ggml_vec_mad_f32_unroll(ne0, nb01, nb11, d, s0, s1); + } + for (int64_t i01 = bne01_unroll; i01 < bne01; ++i01) { + const int64_t i11 = i01; + + float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); + float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + + ggml_vec_mad_f32(ne0, d, s0, *s1); + } +#else + for (int64_t i01 = bi01; i01 < bne01; ++i01) { + const int64_t i11 = i01; + + float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); + float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + + ggml_vec_mad_f32(ne0, d, s0, *s1); + } +#endif + } + } + } +} + +static void ggml_compute_forward_out_prod_q_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS; + + const int ith = params->ith; + const int nth = params->nth; + + const ggml_type type = src0->type; + ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; + + GGML_ASSERT(ne02 == ne12); + GGML_ASSERT(ne03 == ne13); + GGML_ASSERT(ne2 == ne12); + GGML_ASSERT(ne3 == ne13); + + // we don't support permuted src0 dim0 + GGML_ASSERT(nb00 == ggml_type_size(type)); + + // dst dim0 cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + // GGML_ASSERT(nb0 <= nb1); + // GGML_ASSERT(nb1 <= nb2); + // GGML_ASSERT(nb2 <= nb3); + + GGML_ASSERT(ne0 == ne00); + GGML_ASSERT(ne1 == ne10); + GGML_ASSERT(ne2 == ne02); + GGML_ASSERT(ne3 == ne03); + + // nb01 >= nb00 - src0 is not transposed + // compute by src0 rows + + if (ith == 0) { + ggml_vec_set_f32(ne0*ne1*ne2*ne3, (float *)dst->data, 0); + } + ggml_barrier(params->threadpool); + + // parallelize by last three dimensions + + // total rows in dst + const int64_t nr = ne1*ne2*ne3; + + // rows per thread + const int64_t dr = (nr + nth - 1)/nth; + + // row range for this thread + const int64_t ir0 = dr*ith; + const int64_t ir1 = MIN(ir0 + dr, nr); + + // dst[:,:,:,:] = 0 + // for i2,i3: + // for i1: + // for i01: + // for i0: + // dst[i0,i1,i2,i3] += src0[i0,i01,i2,i3] * src1[i1,i01,i2,i3] + + float * wdata = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32) * ith; + + for (int64_t ir = ir0; ir < ir1; ++ir) { + // dst indices + const int64_t i3 = ir/(ne2*ne1); + const int64_t i2 = (ir - i3*ne2*ne1)/ne1; + const int64_t i1 = (ir - i3*ne2*ne1 - i2*ne1); + + const int64_t i02 = i2; + const int64_t i03 = i3; + + //const int64_t i10 = i1; + const int64_t i12 = i2; + const int64_t i13 = i3; + + for (int64_t i01 = 0; i01 < ne01; ++i01) { + const int64_t i11 = i01; + + float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); + float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + + dequantize_row_q(s0, wdata, ne0); + ggml_vec_mad_f32(ne0, d, wdata, *s1); + } + } +} + +void ggml_compute_forward_out_prod( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + { + ggml_compute_forward_out_prod_q_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + GGML_ABORT("fatal error"); // todo + // ggml_compute_forward_out_prod_f16_f32(params, dst); + } + case GGML_TYPE_F32: + { + ggml_compute_forward_out_prod_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_scale + +static void ggml_compute_forward_scale_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(ggml_is_contiguous(dst)); + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + + // scale factor + float v; + memcpy(&v, dst->op_params, sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + const size_t nb01 = src0->nb[1]; + + const size_t nb1 = dst->nb[1]; + + for (int i1 = ir0; i1 < ir1; i1++) { + if (dst->data != src0->data) { + // src0 is same shape as dst => same indices + memcpy((char *)dst->data + i1*nb1, (char *)src0->data + i1*nb01, nc * sizeof(float)); + } + ggml_vec_scale_f32(nc, (float *) ((char *) dst->data + i1*nb1), v); + } +} + +void ggml_compute_forward_scale( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_scale_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_set + +static void ggml_compute_forward_set_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); + + // view src0 and dst with these strides and data offset inbytes during set + // nb0 is implicitly element_size because src0 and dst are contiguous + size_t nb1 = ((int32_t *) dst->op_params)[0]; + size_t nb2 = ((int32_t *) dst->op_params)[1]; + size_t nb3 = ((int32_t *) dst->op_params)[2]; + size_t offset = ((int32_t *) dst->op_params)[3]; + bool inplace = (bool) ((int32_t *) dst->op_params)[4]; + + if (!inplace) { + if (params->ith == 0) { + // memcpy needs to be synchronized across threads to avoid race conditions. + // => do it in INIT phase + memcpy( + ((char *) dst->data), + ((char *) src0->data), + ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + } + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src1); + const int nc = src1->ne[0]; + + GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) + GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) + + // src0 and dst as viewed during set + const size_t nb0 = ggml_element_size(src0); + + const int im0 = (ne10 == 0 ? 0 : ne10-1); + const int im1 = (ne11 == 0 ? 0 : ne11-1); + const int im2 = (ne12 == 0 ? 0 : ne12-1); + const int im3 = (ne13 == 0 ? 0 : ne13-1); + + GGML_ASSERT(offset + im0*nb0 + im1*nb1 + im2*nb2 + im3*nb3 <= ggml_nbytes(dst)); + + GGML_ASSERT(nb10 == sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are viewed with shape of src1 and offset + // => same indices + const int i3 = ir/(ne12*ne11); + const int i2 = (ir - i3*ne12*ne11)/ne11; + const int i1 = (ir - i3*ne12*ne11 - i2*ne11); + + ggml_vec_cpy_f32(nc, + (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), + (float *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); + } +} + +static void ggml_compute_forward_set_i32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); + + // view src0 and dst with these strides and data offset inbytes during set + // nb0 is implicitly element_size because src0 and dst are contiguous + size_t nb1 = ((int32_t *) dst->op_params)[0]; + size_t nb2 = ((int32_t *) dst->op_params)[1]; + size_t nb3 = ((int32_t *) dst->op_params)[2]; + size_t offset = ((int32_t *) dst->op_params)[3]; + bool inplace = (bool) ((int32_t *) dst->op_params)[4]; + + if (!inplace) { + if (params->ith == 0) { + // memcpy needs to be synchronized across threads to avoid race conditions. + // => do it in INIT phase + memcpy( + ((char *) dst->data), + ((char *) src0->data), + ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + } + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src1); + const int nc = src1->ne[0]; + + GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) + GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) + + // src0 and dst as viewed during set + const size_t nb0 = ggml_element_size(src0); + + const int im0 = (ne10 == 0 ? 0 : ne10-1); + const int im1 = (ne11 == 0 ? 0 : ne11-1); + const int im2 = (ne12 == 0 ? 0 : ne12-1); + const int im3 = (ne13 == 0 ? 0 : ne13-1); + + GGML_ASSERT(offset + im0*nb0 + im1*nb1 + im2*nb2 + im3*nb3 <= ggml_nbytes(dst)); + + GGML_ASSERT(nb10 == sizeof(int32_t)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int ir = ir0; ir < ir1; ++ir) { + // src0 and dst are viewed with shape of src1 and offset + // => same indices + const int i3 = ir/(ne12*ne11); + const int i2 = (ir - i3*ne12*ne11)/ne11; + const int i1 = (ir - i3*ne12*ne11 - i2*ne11); + + ggml_vec_cpy_i32(nc, + (int32_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + offset), + (int32_t *) ((char *) src1->data + i3*nb13 + i2*nb12 + i1*nb11)); + } +} + +void ggml_compute_forward_set( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_set_f32(params, dst); + } break; + case GGML_TYPE_I32: + { + ggml_compute_forward_set_i32(params, dst); + } break; + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q8_1: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_cpy + +void ggml_compute_forward_cpy( + const ggml_compute_params * params, + ggml_tensor * dst) { + ggml_compute_forward_dup(params, dst); +} + +// ggml_compute_forward_cont + +void ggml_compute_forward_cont( + const ggml_compute_params * params, + ggml_tensor * dst) { + ggml_compute_forward_dup(params, dst); +} + +// ggml_compute_forward_reshape + +void ggml_compute_forward_reshape( + const ggml_compute_params * params, + ggml_tensor * dst) { + // NOP + GGML_UNUSED(params); + GGML_UNUSED(dst); +} + +// ggml_compute_forward_view + +void ggml_compute_forward_view( + const ggml_compute_params * params, + ggml_tensor * dst) { + // NOP + GGML_UNUSED(params); + GGML_UNUSED(dst); +} + +// ggml_compute_forward_permute + +void ggml_compute_forward_permute( + const ggml_compute_params * params, + ggml_tensor * dst) { + // NOP + GGML_UNUSED(params); + GGML_UNUSED(dst); +} + +// ggml_compute_forward_transpose + +void ggml_compute_forward_transpose( + const ggml_compute_params * params, + ggml_tensor * dst) { + // NOP + GGML_UNUSED(params); + GGML_UNUSED(dst); +} + +// ggml_compute_forward_get_rows + +static void ggml_compute_forward_get_rows_q( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int64_t nc = ne00; + const int64_t nr = ggml_nelements(src1); + + const ggml_type type = src0->type; + ggml_to_float_t const dequantize_row_q = ggml_get_type_traits(type)->to_float; + + assert(ne0 == nc); + assert(ne02 == ne11); + assert(nb00 == ggml_type_size(type)); + assert(ggml_nrows(dst) == nr); + + const int ith = params->ith; + const int nth = params->nth; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int64_t i = ir0; i < ir1; ++i) { + const int64_t i12 = i/(ne11*ne10); + const int64_t i11 = (i - i12*ne11*ne10)/ne10; + const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); + const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + + GGML_ASSERT(i01 >= 0 && i01 < ne01); + + dequantize_row_q( + (const void *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), + (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); + } +} + +static void ggml_compute_forward_get_rows_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int64_t nc = ne00; + const int64_t nr = ggml_nelements(src1); + + assert(ne0 == nc); + assert(ne02 == ne11); + assert(nb00 == sizeof(ggml_fp16_t)); + assert(ggml_nrows(dst) == nr); + + const int ith = params->ith; + const int nth = params->nth; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int64_t i = ir0; i < ir1; ++i) { + const int64_t i12 = i/(ne11*ne10); + const int64_t i11 = (i - i12*ne11*ne10)/ne10; + const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); + const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + + GGML_ASSERT(i01 >= 0 && i01 < ne01); + + ggml_fp16_to_fp32_row( + (const ggml_fp16_t*) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), + (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); + } +} + +static void ggml_compute_forward_get_rows_bf16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int64_t nc = ne00; + const int64_t nr = ggml_nelements(src1); + + assert(ne0 == nc); + assert(ne02 == ne11); + assert(nb00 == sizeof(ggml_bf16_t)); + assert(ggml_nrows(dst) == nr); + + const int ith = params->ith; + const int nth = params->nth; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int64_t i = ir0; i < ir1; ++i) { + const int64_t i12 = i/(ne11*ne10); + const int64_t i11 = (i - i12*ne11*ne10)/ne10; + const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); + const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + + GGML_ASSERT(i01 >= 0 && i01 < ne01); + + ggml_bf16_to_fp32_row( + (const ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), + (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); + } +} + +static void ggml_compute_forward_get_rows_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_TENSOR_BINARY_OP_LOCALS + + const int64_t nc = ne00; + const int64_t nr = ggml_nelements(src1); + + assert(ne0 == nc); + assert(ne02 == ne11); + assert(nb00 == sizeof(float)); + assert(ggml_nrows(dst) == nr); + + const int ith = params->ith; + const int nth = params->nth; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int64_t i = ir0; i < ir1; ++i) { + const int64_t i12 = i/(ne11*ne10); + const int64_t i11 = (i - i12*ne11*ne10)/ne10; + const int64_t i10 = (i - i12*ne11*ne10 - i11*ne10); + const int64_t i01 = *(int32_t *) ((char *) src1->data + i10*nb10 + i11*nb11 + i12*nb12); + + GGML_ASSERT(i01 >= 0 && i01 < ne01); + + ggml_vec_cpy_f32(nc, + (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), + (float *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03)); + } +} + +void ggml_compute_forward_get_rows( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q8_1: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + { + ggml_compute_forward_get_rows_q(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_get_rows_f16(params, dst); + } break; + case GGML_TYPE_BF16: + { + ggml_compute_forward_get_rows_bf16(params, dst); + } break; + case GGML_TYPE_F32: + case GGML_TYPE_I32: + { + ggml_compute_forward_get_rows_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } + + //static bool first = true; + //printf("ne0 = %d, ne1 = %d, ne2 = %d\n", dst->ne[0], dst->ne[1], dst->ne[2]); + //if (first) { + // first = false; + //} else { + // for (int k = 0; k < dst->ne[1]; ++k) { + // for (int j = 0; j < dst->ne[0]/16; ++j) { + // for (int i = 0; i < 16; ++i) { + // printf("%8.4f ", ((float *) dst->data)[k*dst->ne[0] + j*16 + i]); + // } + // printf("\n"); + // } + // printf("\n"); + // } + // printf("\n"); + // exit(0); + //} +} + +// ggml_compute_forward_get_rows_back + +static void ggml_compute_forward_get_rows_back_f32_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(ggml_is_contiguous(dst)); + + // ggml_compute_forward_dup_same_cont(params, opt0, dst); + + memset(dst->data, 0, ggml_nbytes(dst)); + + const int nc = src0->ne[0]; + const int nr = ggml_nelements(src1); + + GGML_ASSERT( dst->ne[0] == nc); + GGML_ASSERT(src0->nb[0] == sizeof(ggml_fp16_t)); + + for (int i = 0; i < nr; ++i) { + const int r = ((int32_t *) src1->data)[i]; + + for (int j = 0; j < nc; ++j) { + ggml_fp16_t v = ((ggml_fp16_t *) ((char *) src0->data + i*src0->nb[1]))[j]; + ((float *) ((char *) dst->data + r*dst->nb[1]))[j] += GGML_FP16_TO_FP32(v); + } + } +} + +static void ggml_compute_forward_get_rows_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + if (params->ith != 0) { + return; + } + + GGML_ASSERT(ggml_is_contiguous(dst)); + + // ggml_compute_forward_dup_same_cont(params, opt0, dst); + + memset(dst->data, 0, ggml_nbytes(dst)); + + const int nc = src0->ne[0]; + const int nr = ggml_nelements(src1); + + GGML_ASSERT( dst->ne[0] == nc); + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + for (int i = 0; i < nr; ++i) { + const int r = ((int32_t *) src1->data)[i]; + + ggml_vec_add_f32(nc, + (float *) ((char *) dst->data + r*dst->nb[1]), + (float *) ((char *) dst->data + r*dst->nb[1]), + (float *) ((char *) src0->data + i*src0->nb[1])); + } +} + +void ggml_compute_forward_get_rows_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_get_rows_back_f32_f16(params, dst); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_get_rows_back_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } + + //static bool first = true; + //printf("ne0 = %d, ne1 = %d, ne2 = %d\n", dst->ne[0], dst->ne[1], dst->ne[2]); + //if (first) { + // first = false; + //} else { + // for (int k = 0; k < dst->ne[1]; ++k) { + // for (int j = 0; j < dst->ne[0]/16; ++j) { + // for (int i = 0; i < 16; ++i) { + // printf("%8.4f ", ((float *) dst->data)[k*dst->ne[0] + j*16 + i]); + // } + // printf("\n"); + // } + // printf("\n"); + // } + // printf("\n"); + // exit(0); + //} +} + +// ggml_compute_forward_diag + +static void ggml_compute_forward_diag_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + // TODO: handle transposed/permuted matrices + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(ne00 == ne0); + GGML_ASSERT(ne00 == ne1); + GGML_ASSERT(ne01 == 1); + GGML_ASSERT(ne02 == ne2); + GGML_ASSERT(ne03 == ne3); + + GGML_ASSERT(nb00 == sizeof(float)); + GGML_ASSERT(nb0 == sizeof(float)); + + for (int i3 = 0; i3 < ne3; i3++) { + for (int i2 = 0; i2 < ne2; i2++) { + for (int i1 = 0; i1 < ne1; i1++) { + float * d = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1); + float * s = (float *)((char *) src0->data + i3*nb03 + i2*nb02); + for (int i0 = 0; i0 < i1; i0++) { + d[i0] = 0; + } + d[i1] = s[i1]; + for (int i0 = i1+1; i0 < ne0; i0++) { + d[i0] = 0; + } + } + } + } +} + +void ggml_compute_forward_diag( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_diag_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_diag_mask_inf + +static void ggml_compute_forward_diag_mask_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const float value) { + + const ggml_tensor * src0 = dst->src[0]; + + const int ith = params->ith; + const int nth = params->nth; + + const int n_past = ((int32_t *) dst->op_params)[0]; + const bool inplace = src0->data == dst->data; + + GGML_ASSERT(n_past >= 0); + + if (!inplace) { + if (ith == 0) { + // memcpy needs to be synchronized across threads to avoid race conditions. + // => do it in INIT phase + GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); + GGML_ASSERT(ggml_is_contiguous(dst) && ggml_is_contiguous(src0)); + memcpy( + ((char *) dst->data), + ((char *) src0->data), + ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + } + + // TODO: handle transposed/permuted matrices + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + const int nr = src0->ne[1]; + const int nz = n/nr; + + GGML_ASSERT( dst->nb[0] == sizeof(float)); + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + for (int k = 0; k < nz; k++) { + for (int j = ith; j < nr; j += nth) { + for (int i = n_past; i < nc; i++) { + if (i > n_past + j) { + *(float *)((char *) dst->data + k*dst->nb[2] + j*dst->nb[1] + i*dst->nb[0]) = value; + } + } + } + } +} + +void ggml_compute_forward_diag_mask_inf( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_diag_mask_f32(params, dst, -INFINITY); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +void ggml_compute_forward_diag_mask_zero( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_diag_mask_f32(params, dst, 0); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_soft_max + +static void ggml_compute_forward_soft_max_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + assert(ggml_is_contiguous(dst)); + assert(ggml_are_same_shape(src0, dst)); + + float scale = 1.0f; + float max_bias = 0.0f; + + memcpy(&scale, (float *) dst->op_params + 0, sizeof(float)); + memcpy(&max_bias, (float *) dst->op_params + 1, sizeof(float)); + + // TODO: handle transposed/permuted matrices + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + //const int64_t ne11 = src1 ? src1->ne[1] : 1; + + // TODO: is this supposed to be ceil instead of floor? + // https://huggingface.co/mosaicml/mpt-7b/blob/main/attention.py#L370 + const uint32_t n_head = ne02; + const uint32_t n_head_log2 = 1u << (uint32_t) floor(log2(n_head)); + + const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); + const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + float * wp = (float *) params->wdata + (nc + CACHE_LINE_SIZE_F32) * ith; + + const bool use_f16 = (src1 && src1->type == GGML_TYPE_F16); + + for (int i1 = ir0; i1 < ir1; i1++) { + // ALiBi + const uint32_t h = (i1/ne01)%ne02; // head + const float slope = (max_bias > 0.0f) ? h < n_head_log2 ? powf(m0, h + 1) : powf(m1, 2*(h - n_head_log2) + 1) : 1.0f; + + float * sp = (float *)((char *) src0->data + i1*src0->nb[1]); + float * dp = (float *)((char *) dst->data + i1*dst->nb[1]); + + // broadcast the mask across rows + ggml_fp16_t * mp_f16 = src1 ? (ggml_fp16_t *)((char *) src1->data) + (i1%ne01)*ne00 : NULL; + float * mp_f32 = src1 ? (float *)((char *) src1->data) + (i1%ne01)*ne00 : NULL; + + ggml_vec_cpy_f32 (nc, wp, sp); + ggml_vec_scale_f32(nc, wp, scale); + if (mp_f32) { + if (use_f16) { + for (int i = 0; i < nc; ++i) { + wp[i] += slope*GGML_FP16_TO_FP32(mp_f16[i]); + } + } else { + for (int i = 0; i < nc; ++i) { + wp[i] += slope*mp_f32[i]; + } + } + } + +#ifndef NDEBUG + for (int i = 0; i < nc; ++i) { + //printf("p[%d] = %f\n", i, p[i]); + assert(!isnan(wp[i])); + } +#endif + + float max = -INFINITY; + ggml_vec_max_f32(nc, &max, wp); + + ggml_float sum = ggml_vec_soft_max_f32(nc, dp, wp, max); + assert(sum > 0.0); + + sum = 1.0/sum; + ggml_vec_scale_f32(nc, dp, sum); + +#ifndef NDEBUG + for (int i = 0; i < nc; ++i) { + assert(!isnan(dp[i])); + assert(!isinf(dp[i])); + } +#endif + } +} + +void ggml_compute_forward_soft_max( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_soft_max_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + + +// ggml_compute_forward_soft_max_ext_back + +static void ggml_compute_forward_soft_max_ext_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(ggml_is_contiguous(src1)); + GGML_ASSERT(ggml_is_contiguous(dst)); + GGML_ASSERT(ggml_are_same_shape(src0, dst)); + GGML_ASSERT(ggml_are_same_shape(src1, dst)); + + float scale = 1.0f; + float max_bias = 0.0f; + + memcpy(&scale, (const float *) dst->op_params + 0, sizeof(float)); + memcpy(&max_bias, (const float *) dst->op_params + 1, sizeof(float)); + + GGML_ASSERT(max_bias == 0.0f); + + // TODO: handle transposed/permuted matrices + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src0->ne[0]; + const int nr = ggml_nrows(src0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + for (int i1 = ir0; i1 < ir1; i1++) { + float *dy = (float *)((char *) src0->data + i1*src0->nb[1]); + float *y = (float *)((char *) src1->data + i1*src1->nb[1]); + float *dx = (float *)((char *) dst->data + i1*dst->nb[1]); + +#ifndef NDEBUG + for (int i = 0; i < nc; ++i) { + //printf("p[%d] = %f\n", i, p[i]); + assert(!isnan(dy[i])); + assert(!isnan(y[i])); + } +#endif + // Jii = yi - yi*yi + // Jij = -yi*yj + // J = diag(y)-y.T*y + // dx = J * dy + // dxk = sum_i(Jki * dyi) + // dxk = sum_i(-yk*yi * dyi) - (-yk*yk)*dyk + (yk - yk*yk)*dyk + // dxk = sum_i(-yk*yi * dyi) + yk*yk*dyk + yk*dyk - yk*yk*dyk + // dxk = sum_i(-yk*yi * dyi) + yk*dyk + // dxk = -yk * sum_i(yi * dyi) + yk*dyk + // dxk = -yk * dot(y, dy) + yk*dyk + // dxk = yk * (- dot(y, dy) + dyk) + // dxk = yk * (dyk - dot(y, dy)) + // + // post-order: + // dot_y_dy := dot(y, dy) + // dx := dy + // dx := dx - dot_y_dy + // dx := dx * y + + // linear runtime, no additional memory + float dot_y_dy = 0; + ggml_vec_dot_f32 (nc, &dot_y_dy, 0, y, 0, dy, 0, 1); + ggml_vec_cpy_f32 (nc, dx, dy); + ggml_vec_acc1_f32 (nc, dx, -dot_y_dy); + ggml_vec_mul_f32 (nc, dx, dx, y); + ggml_vec_scale_f32(nc, dx, scale); + +#ifndef NDEBUG + for (int i = 0; i < nc; ++i) { + assert(!isnan(dx[i])); + assert(!isinf(dx[i])); + } +#endif + } +} + +void ggml_compute_forward_soft_max_ext_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_soft_max_ext_back_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_clamp + +static void ggml_compute_forward_clamp_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + float min; + float max; + memcpy(&min, (float *) dst->op_params + 0, sizeof(float)); + memcpy(&max, (float *) dst->op_params + 1, sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + const size_t nb00 = src0->nb[0]; + const size_t nb01 = src0->nb[1]; + + const size_t nb0 = dst->nb[0]; + const size_t nb1 = dst->nb[1]; + + GGML_ASSERT( nb0 == sizeof(float)); + GGML_ASSERT(nb00 == sizeof(float)); + + for (int j = ith; j < n; j += nth) { + float * dst_ptr = (float *) ((char *) dst->data + j*nb1); + float * src0_ptr = (float *) ((char *) src0->data + j*nb01); + + for (int i = 0; i < nc; i++) { + dst_ptr[i] = MAX(MIN(src0_ptr[i], max), min); + } + } +} + +static void ggml_compute_forward_clamp_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + float min; + float max; + memcpy(&min, (float *) dst->op_params + 0, sizeof(float)); + memcpy(&max, (float *) dst->op_params + 1, sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + const size_t nb00 = src0->nb[0]; + const size_t nb01 = src0->nb[1]; + + const size_t nb0 = dst->nb[0]; + const size_t nb1 = dst->nb[1]; + + GGML_ASSERT( nb0 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + + for (int j = ith; j < n; j += nth) { + ggml_fp16_t * dst_ptr = (ggml_fp16_t *) ((char *) dst->data + j*nb1); + ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + j*nb01); + + for (int i = 0; i < nc; i++) { + float v = GGML_FP16_TO_FP32(src0_ptr[i]); + dst_ptr[i] = GGML_FP32_TO_FP16(MAX(MIN(v, max), min)); + } + } +} + +void ggml_compute_forward_clamp( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_clamp_f32(params, dst); + } break; + case GGML_TYPE_F16: + { + ggml_compute_forward_clamp_f16(params, dst); + } break; + case GGML_TYPE_BF16: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q8_1: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_TQ1_0: + case GGML_TYPE_TQ2_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_Q8_K: + case GGML_TYPE_I8: + case GGML_TYPE_I16: + case GGML_TYPE_I32: + case GGML_TYPE_I64: + case GGML_TYPE_F64: + case GGML_TYPE_COUNT: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_rope + +static float rope_yarn_ramp(const float low, const float high, const int i0) { + const float y = (i0 / 2 - low) / MAX(0.001f, high - low); + return 1 - MIN(1, MAX(0, y)); +} + +// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn +// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. +static void rope_yarn( + float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, + float * cos_theta, float * sin_theta) { + // Get n-d rotational scaling corrected for extrapolation + float theta_interp = freq_scale * theta_extrap; + float theta = theta_interp; + if (ext_factor != 0.0f) { + float ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; + theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; + + // Get n-d magnitude scaling corrected for interpolation + mscale *= 1.0f + 0.1f * logf(1.0f / freq_scale); + } + *cos_theta = cosf(theta) * mscale; + *sin_theta = sinf(theta) * mscale; +} + +static void ggml_rope_cache_init( + float theta_base, float freq_scale, const float * freq_factors, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, + float * cache, float sin_sign, float theta_scale) { + // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py + float theta = theta_base; + for (int64_t i0 = 0; i0 < ne0; i0 += 2) { + const float ff = freq_factors ? freq_factors[i0/2] : 1.0f; + rope_yarn( + theta/ff, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] + ); + cache[i0 + 1] *= sin_sign; + + theta *= theta_scale; + } +} + +static void ggml_mrope_cache_init( + float theta_base_t, float theta_base_h, float theta_base_w, float theta_base_e, int sections[4], bool indep_sects, + float freq_scale, const float * freq_factors, float corr_dims[2], int64_t ne0, float ext_factor, float mscale, + float * cache, float sin_sign, float theta_scale) { + // ref: https://github.com/jquesnelle/yarn/blob/master/scaled_rope/LlamaYaRNScaledRotaryEmbedding.py + float theta_t = theta_base_t; + float theta_h = theta_base_h; + float theta_w = theta_base_w; + float theta_e = theta_base_e; // extra position id for vision encoder + int sect_dims = sections[0] + sections[1] + sections[2] + sections[3]; + int sec_w = sections[1] + sections[0]; + int sec_e = sections[2] + sec_w; + GGML_ASSERT(sect_dims <= ne0); + + for (int64_t i0 = 0; i0 < ne0; i0 += 2) { + const float ff = freq_factors ? freq_factors[i0/2] : 1.0f; + + int sector = (i0 / 2) % sect_dims; + if (indep_sects) { + // compute theta independently for each dim sections + // (i.e. reset corresponding theta when `i0` go from one section to another) + if (sector == 0) { + theta_t = theta_base_t; + } + else if (sector == sections[0]) { + theta_h = theta_base_h;; + } + else if (sector == sec_w) { + theta_w = theta_base_w; + } + else if (sector == sec_e) { + theta_e = theta_base_e; + } + } + + float theta = theta_t; + if (sector >= sections[0] && sector < sec_w) { + theta = theta_h; + } + else if (sector >= sec_w && sector < sec_w + sections[2]) { + theta = theta_w; + } + else if (sector >= sec_w + sections[2]) { + theta = theta_e; + } + + rope_yarn( + theta/ff, freq_scale, corr_dims, i0, ext_factor, mscale, &cache[i0 + 0], &cache[i0 + 1] + ); + cache[i0 + 1] *= sin_sign; + + theta_t *= theta_scale; + theta_w *= theta_scale; + theta_h *= theta_scale; + theta_e *= theta_scale; + } +} + +static void ggml_compute_forward_rope_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const bool forward) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + const ggml_tensor * src2 = dst->src[2]; + + float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; + int sections[4]; + + //const int n_past = ((int32_t *) dst->op_params)[0]; + const int n_dims = ((int32_t *) dst->op_params)[1]; + const int mode = ((int32_t *) dst->op_params)[2]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; + + memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); + memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); + memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); + memcpy(&attn_factor, (int32_t *) dst->op_params + 8, sizeof(float)); + memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); + memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); + memcpy(§ions, (int32_t *) dst->op_params + 11, sizeof(int)*4); + + GGML_TENSOR_UNARY_OP_LOCALS + + //printf("ne0: %d, ne1: %d, ne2: %d, ne3: %d\n", ne0, ne1, ne2, ne3); + //printf("n_past = %d, ne2 = %d\n", n_past, ne2); + + GGML_ASSERT(nb00 == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(dst); + + GGML_ASSERT(n_dims <= ne0); + GGML_ASSERT(n_dims % 2 == 0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + // row index used to determine which thread to use + int ir = 0; + + const float theta_scale = powf(freq_base, -2.0f/n_dims); + + float corr_dims[2]; + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; + const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; // ggml_rope_multi, multimodal rotary position embedding + const bool is_vision = mode == GGML_ROPE_TYPE_VISION; + + if (is_mrope) { + GGML_ASSERT(sections[0] > 0 || sections[1] > 0 || sections[2] > 0); + } + + if (is_vision) { + GGML_ASSERT(n_dims == ne0/2); + } + + const float * freq_factors = NULL; + if (src2 != NULL) { + GGML_ASSERT(src2->type == GGML_TYPE_F32); + GGML_ASSERT(src2->ne[0] >= n_dims / 2); + freq_factors = (const float *) src2->data; + } + + // backward process uses inverse rotation by cos and sin. + // cos and sin build a rotation matrix, where the inverse is the transpose. + // this essentially just switches the sign of sin. + const float sin_sign = forward ? 1.0f : -1.0f; + + const int32_t * pos = (const int32_t *) src1->data; + + for (int64_t i3 = 0; i3 < ne3; i3++) { // batch + for (int64_t i2 = 0; i2 < ne2; i2++) { // seq-len + + float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; + if (!is_mrope) { + const int64_t p = pos[i2]; + ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); + } + else { + const int64_t p_t = pos[i2]; + const int64_t p_h = pos[i2 + ne2]; + const int64_t p_w = pos[i2 + ne2 * 2]; + const int64_t p_e = pos[i2 + ne2 * 3]; + ggml_mrope_cache_init( + p_t, p_h, p_w, p_e, sections, is_vision, + freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); + } + + for (int64_t i1 = 0; i1 < ne1; i1++) { // attn-heads + if (ir++ < ir0) continue; + if (ir > ir1) break; + + if (is_neox || is_mrope) { + if (is_vision){ + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = src[0]; + const float x1 = src[n_dims]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims] = x0*sin_theta + x1*cos_theta; + } + } else { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = src[0]; + const float x1 = src[n_dims/2]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; + } + } + } else { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + const float x0 = src[0]; + const float x1 = src[1]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[1] = x0*sin_theta + x1*cos_theta; + } + } + + if (is_vision) { + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = src[0]; + const float x1 = src[n_dims]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims] = x0*sin_theta + x1*cos_theta; + } + } else { + // fill the remain channels with data from src tensor + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const float * const src = (float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + float * dst_data = (float *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } + } + } + } +} + +// TODO: deduplicate f16/f32 code +static void ggml_compute_forward_rope_f16( + const ggml_compute_params * params, + ggml_tensor * dst, + const bool forward) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + const ggml_tensor * src2 = dst->src[2]; + + float freq_base, freq_scale, ext_factor, attn_factor, beta_fast, beta_slow; + int sections[4]; + + //const int n_past = ((int32_t *) dst->op_params)[0]; + const int n_dims = ((int32_t *) dst->op_params)[1]; + const int mode = ((int32_t *) dst->op_params)[2]; + //const int n_ctx = ((int32_t *) dst->op_params)[3]; + const int n_ctx_orig = ((int32_t *) dst->op_params)[4]; + memcpy(&freq_base, (int32_t *) dst->op_params + 5, sizeof(float)); + memcpy(&freq_scale, (int32_t *) dst->op_params + 6, sizeof(float)); + memcpy(&ext_factor, (int32_t *) dst->op_params + 7, sizeof(float)); + memcpy(&attn_factor, (int32_t *) dst->op_params + 8, sizeof(float)); + memcpy(&beta_fast, (int32_t *) dst->op_params + 9, sizeof(float)); + memcpy(&beta_slow, (int32_t *) dst->op_params + 10, sizeof(float)); + memcpy(§ions, (int32_t *) dst->op_params + 11, sizeof(int)*4); + + + GGML_TENSOR_UNARY_OP_LOCALS + + //printf("ne0: %d, ne1: %d, ne2: %d, ne3: %d\n", ne0, ne1, ne2, ne3); + //printf("n_past = %d, ne2 = %d\n", n_past, ne2); + + GGML_ASSERT(nb0 == sizeof(ggml_fp16_t)); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(dst); + + GGML_ASSERT(n_dims <= ne0); + GGML_ASSERT(n_dims % 2 == 0); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + // row index used to determine which thread to use + int ir = 0; + + const float theta_scale = powf(freq_base, -2.0f/n_dims); + + float corr_dims[2]; + ggml_rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; + const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; + const bool is_vision = mode == GGML_ROPE_TYPE_VISION; + + if (is_mrope) { + GGML_ASSERT(sections[0] > 0 || sections[1] > 0 || sections[2] > 0); + } + + if (is_vision) { + GGML_ASSERT(n_dims == ne0/2); + } + + const float * freq_factors = NULL; + if (src2 != NULL) { + GGML_ASSERT(src2->type == GGML_TYPE_F32); + GGML_ASSERT(src2->ne[0] >= n_dims / 2); + freq_factors = (const float *) src2->data; + } + + // backward process uses inverse rotation by cos and sin. + // cos and sin build a rotation matrix, where the inverse is the transpose. + // this essentially just switches the sign of sin. + const float sin_sign = forward ? 1.0f : -1.0f; + + const int32_t * pos = (const int32_t *) src1->data; + + for (int64_t i3 = 0; i3 < ne3; i3++) { + for (int64_t i2 = 0; i2 < ne2; i2++) { + + float * cache = (float *) params->wdata + (ne0 + CACHE_LINE_SIZE_F32)*ith; + if (!is_mrope) { + const int64_t p = pos[i2]; + ggml_rope_cache_init(p, freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); + } + else { + const int64_t p_t = pos[i2]; + const int64_t p_h = pos[i2 + ne2]; + const int64_t p_w = pos[i2 + ne2 * 2]; + const int64_t p_e = pos[i2 + ne2 * 3]; + ggml_mrope_cache_init( + p_t, p_h, p_w, p_e, sections, is_vision, + freq_scale, freq_factors, corr_dims, ne0, ext_factor, attn_factor, cache, sin_sign, theta_scale); + } + + for (int64_t i1 = 0; i1 < ne1; i1++) { + if (ir++ < ir0) continue; + if (ir > ir1) break; + + if (is_neox || is_mrope) { + if (is_vision) { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = GGML_FP16_TO_FP32(src[0]); + const float x1 = GGML_FP16_TO_FP32(src[n_dims]); + + dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); + dst_data[n_dims] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); + } + } else { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = GGML_FP16_TO_FP32(src[0]); + const float x1 = GGML_FP16_TO_FP32(src[n_dims/2]); + + dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); + dst_data[n_dims/2] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); + } + } + } else { + for (int64_t i0 = 0; i0 < n_dims; i0 += 2) { + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + const float x0 = GGML_FP16_TO_FP32(src[0]); + const float x1 = GGML_FP16_TO_FP32(src[1]); + + dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); + dst_data[1] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); + } + } + + if (is_vision) { + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const int64_t ic = i0/2; + + const float cos_theta = cache[i0 + 0]; + const float sin_theta = cache[i0 + 1]; + + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = GGML_FP16_TO_FP32(src[0]); + const float x1 = GGML_FP16_TO_FP32(src[n_dims]); + + dst_data[0] = GGML_FP32_TO_FP16(x0*cos_theta - x1*sin_theta); + dst_data[n_dims] = GGML_FP32_TO_FP16(x0*sin_theta + x1*cos_theta); + } + } else { + for (int64_t i0 = n_dims; i0 < ne0; i0 += 2) { + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + ggml_fp16_t * dst_data = (ggml_fp16_t *)((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } + } + } + } +} + +void ggml_compute_forward_rope( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_rope_f16(params, dst, true); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_rope_f32(params, dst, true); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_rope_back + +void ggml_compute_forward_rope_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_rope_f16(params, dst, false); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_rope_f32(params, dst, false); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_conv_transpose_1d + +static void ggml_compute_forward_conv_transpose_1d_f16_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src0->type == GGML_TYPE_F16); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + GGML_TENSOR_BINARY_OP_LOCALS + + const int ith = params->ith; + const int nth = params->nth; + + const int nk = ne00*ne01*ne02; + + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb10 == sizeof(float)); + + if (ith == 0) { + memset(params->wdata, 0, params->wsize); + + // permute kernel data (src0) from (K x Cout x Cin) to (Cin x K x Cout) + { + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); + ggml_fp16_t * dst_data = wdata + i01*ne00*ne02; + for (int64_t i00 = 0; i00 < ne00; i00++) { + dst_data[i00*ne02 + i02] = src[i00]; + } + } + } + } + + // permute source data (src1) from (L x Cin) to (Cin x L) + { + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + nk; + ggml_fp16_t * dst_data = wdata; + + for (int64_t i11 = 0; i11 < ne11; i11++) { + const float * const src = (float *)((char *) src1->data + i11*nb11); + for (int64_t i10 = 0; i10 < ne10; i10++) { + dst_data[i10*ne11 + i11] = GGML_FP32_TO_FP16(src[i10]); + } + } + } + + // need to zero dst since we are accumulating into it + memset(dst->data, 0, ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + + const int32_t s0 = ((const int32_t*)(dst->op_params))[0]; + + // total rows in dst + const int nr = ne1; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + ggml_fp16_t * const wdata_src = wdata + nk; + + for (int i1 = ir0; i1 < ir1; i1++) { + float * dst_data = (float *)((char *) dst->data + i1*nb1); + ggml_fp16_t * wdata_kernel = wdata + i1*ne02*ne00; + for (int i10 = 0; i10 < ne10; i10++) { + const int i1n = i10*ne11; + for (int i00 = 0; i00 < ne00; i00++) { + float v = 0; + ggml_vec_dot_f16(ne02, &v, 0, + (ggml_fp16_t *) wdata_src + i1n, 0, + (ggml_fp16_t *) wdata_kernel + i00*ne02, 0, 1); + dst_data[i10*s0 + i00] += v; + } + } + } +} + +static void ggml_compute_forward_conv_transpose_1d_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + GGML_TENSOR_BINARY_OP_LOCALS + + const int ith = params->ith; + const int nth = params->nth; + + const int nk = ne00*ne01*ne02; + + GGML_ASSERT(nb00 == sizeof(float)); + GGML_ASSERT(nb10 == sizeof(float)); + + if (ith == 0) { + memset(params->wdata, 0, params->wsize); + + // prepare kernel data (src0) from (K x Cout x Cin) to (Cin x K x Cout) + { + float * const wdata = (float *) params->wdata + 0; + + for (int64_t i02 = 0; i02 < ne02; i02++) { + for (int64_t i01 = 0; i01 < ne01; i01++) { + const float * const src = (float *)((char *) src0->data + i02*nb02 + i01*nb01); + float * dst_data = wdata + i01*ne00*ne02; + for (int64_t i00 = 0; i00 < ne00; i00++) { + dst_data[i00*ne02 + i02] = src[i00]; + } + } + } + } + + // prepare source data (src1) + { + float * const wdata = (float *) params->wdata + nk; + float * dst_data = wdata; + + for (int64_t i11 = 0; i11 < ne11; i11++) { + const float * const src = (float *)((char *) src1->data + i11*nb11); + for (int64_t i10 = 0; i10 < ne10; i10++) { + dst_data[i10*ne11 + i11] = src[i10]; + } + } + } + + // need to zero dst since we are accumulating into it + memset(dst->data, 0, ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + + const int32_t s0 = ((const int32_t*)(dst->op_params))[0]; + + // total rows in dst + const int nr = ne1; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + float * const wdata = (float *) params->wdata + 0; + float * const wdata_src = wdata + nk; + + for (int i1 = ir0; i1 < ir1; i1++) { + float * dst_data = (float *)((char *) dst->data + i1*nb1); + float * wdata_kernel = wdata + i1*ne02*ne00; + for (int i10 = 0; i10 < ne10; i10++) { + const int i1n = i10*ne11; + for (int i00 = 0; i00 < ne00; i00++) { + float v = 0; + ggml_vec_dot_f32(ne02, &v, 0, + wdata_src + i1n, 0, + wdata_kernel + i00*ne02, 0, 1); + dst_data[i10*s0 + i00] += v; + } + } + } +} + +void ggml_compute_forward_conv_transpose_1d( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_conv_transpose_1d_f16_f32(params, dst); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_conv_transpose_1d_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_im2col_f32 +// src0: kernel [OC, IC, KH, KW] +// src1: image [N, IC, IH, IW] +// dst: result [N, OH, OW, IC*KH*KW] +static void ggml_compute_forward_im2col_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + GGML_TENSOR_BINARY_OP_LOCALS; + + const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; + const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; + const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; + const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; + const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; + const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; + const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t N = is_2D ? ne13 : ne12; + const int64_t IC = is_2D ? ne12 : ne11; + const int64_t IH = is_2D ? ne11 : 1; + const int64_t IW = ne10; + + const int64_t KH = is_2D ? ne01 : 1; + const int64_t KW = ne00; + + const int64_t OH = is_2D ? ne2 : 1; + const int64_t OW = ne1; + + int ofs0 = is_2D ? nb13 : nb12; + int ofs1 = is_2D ? nb12 : nb11; + + GGML_ASSERT(nb10 == sizeof(float)); + + // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] + { + float * const wdata = (float *) dst->data; + + for (int64_t in = 0; in < N; in++) { + for (int64_t ioh = 0; ioh < OH; ioh++) { // 1 + for (int64_t iow = 0; iow < OW; iow++) { + for (int64_t iic = ith; iic < IC; iic += nth) { + + // micro kernel + float * dst_data = wdata + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] + const float * const src_data = (float *)((char *) src1->data + in*ofs0 + iic*ofs1); // [IH, IW] + + for (int64_t ikh = 0; ikh < KH; ikh++) { // 1 + for (int64_t ikw = 0; ikw < KW; ikw++) { + const int64_t iiw = iow*s0 + ikw*d0 - p0; + const int64_t iih = ioh*s1 + ikh*d1 - p1; + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + dst_data[iic*(KH*KW) + ikh*KW + ikw] = 0; + } else { + dst_data[iic*(KH*KW) + ikh*KW + ikw] = (src_data[iih*IW + iiw]); + } + } + } + } + } + } + } + } +} + + +// ggml_compute_forward_im2col_f16 +// src0: kernel [OC, IC, KH, KW] +// src1: image [N, IC, IH, IW] +// dst: result [N, OH, OW, IC*KH*KW] +static void ggml_compute_forward_im2col_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src0->type == GGML_TYPE_F16); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F16); + + GGML_TENSOR_BINARY_OP_LOCALS; + + const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; + const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; + const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; + const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; + const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; + const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; + const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t N = is_2D ? ne13 : ne12; + const int64_t IC = is_2D ? ne12 : ne11; + const int64_t IH = is_2D ? ne11 : 1; + const int64_t IW = ne10; + + const int64_t KH = is_2D ? ne01 : 1; + const int64_t KW = ne00; + + const int64_t OH = is_2D ? ne2 : 1; + const int64_t OW = ne1; + + int ofs0 = is_2D ? nb13 : nb12; + int ofs1 = is_2D ? nb12 : nb11; + + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb10 == sizeof(float)); + + // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] + { + ggml_fp16_t * const wdata = (ggml_fp16_t *) dst->data; + + for (int64_t in = 0; in < N; in++) { + for (int64_t ioh = 0; ioh < OH; ioh++) { // 1 + for (int64_t iow = 0; iow < OW; iow++) { + for (int64_t iic = ith; iic < IC; iic += nth) { + + // micro kernel + ggml_fp16_t * dst_data = wdata + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] + const float * const src_data = (float *)((char *) src1->data + in*ofs0 + iic*ofs1); // [IH, IW] + + for (int64_t ikh = 0; ikh < KH; ikh++) { // 1 + for (int64_t ikw = 0; ikw < KW; ikw++) { + const int64_t iiw = iow*s0 + ikw*d0 - p0; + const int64_t iih = ioh*s1 + ikh*d1 - p1; + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + dst_data[iic*(KH*KW) + ikh*KW + ikw] = 0; + } else { + dst_data[iic*(KH*KW) + ikh*KW + ikw] = GGML_FP32_TO_FP16(src_data[iih*IW + iiw]); + } + } + } + } + } + } + } + } +} + +void ggml_compute_forward_im2col( + const ggml_compute_params * params, + ggml_tensor * dst) { + switch (dst->type) { + case GGML_TYPE_F16: + { + ggml_compute_forward_im2col_f16(params, dst); + } break; + case GGML_TYPE_F32: + { + ggml_compute_forward_im2col_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_im2col_back_f32 + +void ggml_compute_forward_im2col_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; // gradients of forward pass output + const ggml_tensor * src1 = dst->src[1]; // convolution kernel + + GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + GGML_TENSOR_BINARY_OP_LOCALS; + + const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; + const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; + const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; + const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; + const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; + const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; + const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t N = is_2D ? ne3 : ne2; + const int64_t IC = is_2D ? ne2 : ne1; + const int64_t IH = is_2D ? ne1 : 1; + const int64_t IW = ne0; + + const int64_t KH = is_2D ? ne11 : 1; + const int64_t KW = ne10; + + const int64_t OH = is_2D ? ne02 : 1; + const int64_t OW = ne01; + + int ofs0 = is_2D ? nb3 : nb2; + int ofs1 = is_2D ? nb2 : nb1; + + GGML_ASSERT(nb0 == sizeof(float)); + + // im2col: [N, IC, IH, IW] => [N, OH, OW, IC*KH*KW] + { + float * const wdata = (float *) dst->data; + + for (int64_t in = 0; in < N; in++) { + for (int64_t iic = ith; iic < IC; iic += nth) { + for (int64_t iih = 0; iih < IH; iih++) { + for (int64_t iiw = 0; iiw < IW; iiw++) { + + // micro kernel + float grad = 0.0f; + for (int64_t ikh = 0; ikh < KH; ikh++) { + for (int64_t ikw = 0; ikw < KW; ikw++) { + // For s0 > 1 some values were skipped over in the forward pass. + // These values have tmpw % s0 != 0 and need to be skipped in the backwards pass as well. + const int64_t tmpw = (iiw + p0 - ikw*d0); + if (tmpw % s0 != 0) { + continue; + } + const int64_t iow = tmpw / s0; + + // Equivalent logic as above except for s1. + int64_t ioh; + if (is_2D) { + const int64_t tmph = iih + p1 - ikh*d1; + + if (tmph % s1 != 0) { + continue; + } + + ioh = tmph / s1; + } else { + ioh = 0; + } + + if (iow < 0 || iow >= OW || ioh < 0 || ioh >= OH) { + continue; + } + + const float * const grad_in = (const float *) src0->data + + (in*OH*OW + ioh*OW + iow)*(IC*KH*KW); // [IC, KH, KW] + grad += grad_in[iic*(KH*KW) + ikh*KW + ikw]; + } + } + float * dst_data = (float *)((char *) wdata + (in*ofs0 + iic*ofs1)); // [IH, IW] + dst_data[iih*IW + iiw] = grad; + } + } + } + } + } +} + +// ggml_compute_forward_conv_transpose_2d + +void ggml_compute_forward_conv_transpose_2d( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src0->type == GGML_TYPE_F16); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + GGML_TENSOR_BINARY_OP_LOCALS + + const int ith = params->ith; + const int nth = params->nth; + + const int nk = ne00*ne01*ne02*ne03; + + GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); + GGML_ASSERT(nb10 == sizeof(float)); + + if (ith == 0) { + memset(params->wdata, 0, params->wsize); + + // permute kernel data (src0) from (Kw x Kh x Cout x Cin) to (Cin x Kw x Kh x Cout) + { + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + + for (int64_t i03 = 0; i03 < ne03; i03++) { + for (int64_t i02 = 0; i02 < ne02; i02++) { + const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i03*nb03 + i02*nb02); + ggml_fp16_t * dst_data = wdata + i02*ne01*ne00*ne03; + for (int64_t i01 = 0; i01 < ne01; i01++) { + for (int64_t i00 = 0; i00 < ne00; i00++) { + dst_data[i01*ne00*ne03 + i00*ne03 + i03] = src[i01 * ne00 + i00]; + } + } + } + } + } + + // permute source data (src1) from (Sw x Sh x Cin) to (Cin x Sw x Sh) + { + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + nk; + for (int i12 = 0; i12 < ne12; i12++) { + for (int i11 = 0; i11 < ne11; i11++) { + const float * const src = (float *)((char *) src1->data + i12*nb12 + i11*nb11); + ggml_fp16_t * dst_data = wdata + i11*ne10*ne12; + for (int i10 = 0; i10 < ne10; i10++) { + dst_data[i10*ne12 + i12] = GGML_FP32_TO_FP16(src[i10]); + } + } + } + } + + memset(dst->data, 0, ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + + const int32_t stride = ggml_get_op_params_i32(dst, 0); + + // total patches in dst + const int np = ne2; + + // patches per thread + const int dp = (np + nth - 1)/nth; + + // patch range for this thread + const int ip0 = dp*ith; + const int ip1 = MIN(ip0 + dp, np); + + ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + ggml_fp16_t * const wdata_src = wdata + nk; + + for (int i2 = ip0; i2 < ip1; i2++) { // Cout + float * dst_data = (float *)((char *) dst->data + i2*nb2); + ggml_fp16_t * wdata_kernel = wdata + i2*ne01*ne00*ne03; + for (int i11 = 0; i11 < ne11; i11++) { + for (int i10 = 0; i10 < ne10; i10++) { + const int i1n = i11*ne10*ne12 + i10*ne12; + for (int i01 = 0; i01 < ne01; i01++) { + for (int i00 = 0; i00 < ne00; i00++) { + float v = 0; + ggml_vec_dot_f16(ne03, &v, 0, + wdata_src + i1n, 0, + wdata_kernel + i01*ne00*ne03 + i00*ne03, 0, 1); + dst_data[(i11*stride + i01)*ne0 + i10*stride + i00] += v; + } + } + } + } + } +} + +// ggml_compute_forward_pool_1d_sk_p0 + +static void ggml_compute_forward_pool_1d_sk_p0( + const ggml_compute_params * params, + const ggml_op_pool op, + const int k, + ggml_tensor * dst) { + + const ggml_tensor * src = dst->src[0]; + + assert(src->type == GGML_TYPE_F32 || src->type == GGML_TYPE_F16); + + if (params->ith != 0) { + return; + } + + const char * cdata = (const char *)src->data; + const char * const data_end = cdata + ggml_nbytes(src); + float * drow = (float *)dst->data; + + const int64_t rs = dst->ne[0]; + + while (cdata < data_end) { + const void * srow = (const void *)cdata; + int j = 0; + for (int64_t i = 0; i < rs; ++i) { + switch (op) { + case GGML_OP_POOL_AVG: drow[i] = 0; break; + case GGML_OP_POOL_MAX: drow[i] = -FLT_MAX; break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + for (int ki = 0; ki < k; ++ki) { + const float srow_j = (src->type == GGML_TYPE_F32) ? ((const float*)srow)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t*)srow)[j]); + switch (op) { + case GGML_OP_POOL_AVG: drow[i] += srow_j; break; + case GGML_OP_POOL_MAX: if (srow_j > drow[i]) drow[i] = srow_j; break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + ++j; + } + switch (op) { + case GGML_OP_POOL_AVG: drow[i] /= k; break; + case GGML_OP_POOL_MAX: break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + } + + cdata += src->nb[1]; + drow += rs; + } +} + +// ggml_compute_forward_pool_1d + +void ggml_compute_forward_pool_1d( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const int32_t * opts = (const int32_t *)dst->op_params; + ggml_op_pool op = static_cast(opts[0]); + const int k0 = opts[1]; + const int s0 = opts[2]; + const int p0 = opts[3]; + GGML_ASSERT(p0 == 0); // padding not supported + GGML_ASSERT(k0 == s0); // only s = k supported + + ggml_compute_forward_pool_1d_sk_p0(params, op, k0, dst); +} + +// ggml_compute_forward_pool_2d + +void ggml_compute_forward_pool_2d( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src = dst->src[0]; + + assert(src->type == GGML_TYPE_F32 || src->type == GGML_TYPE_F16); + + if (params->ith != 0) { + return; + } + + const int32_t * opts = (const int32_t *)dst->op_params; + ggml_op_pool op = static_cast(opts[0]); + const int k0 = opts[1]; + const int k1 = opts[2]; + const int s0 = opts[3]; + const int s1 = opts[4]; + const int p0 = opts[5]; + const int p1 = opts[6]; + const char * cdata = (const char*)src->data; + const char * const data_end = cdata + ggml_nbytes(src); + + const int64_t px = dst->ne[0]; + const int64_t py = dst->ne[1]; + const int64_t pa = px * py; + + float * dplane = (float *)dst->data; + + const int ka = k0 * k1; + const int offset0 = -p0; + const int offset1 = -p1; + + while (cdata < data_end) { + for (int oy = 0; oy < py; ++oy) { + float * const drow = dplane + oy * px; + for (int ox = 0; ox < px; ++ox) { + float * const out = drow + ox; + switch (op) { + case GGML_OP_POOL_AVG: *out = 0; break; + case GGML_OP_POOL_MAX: *out = -FLT_MAX; break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + + const int ix = offset0 + ox * s0; + const int iy = offset1 + oy * s1; + + for (int ky = 0; ky < k1; ++ky) { + if (iy + ky < 0 || iy + ky >= src->ne[1]) continue; + const void * srow = (const void *)(cdata + src->nb[1] * (iy + ky)); + for (int kx = 0; kx < k0; ++kx) { + int j = ix + kx; + if (j < 0 || j >= src->ne[0]) continue; + const float srow_j = (src->type == GGML_TYPE_F32) ? ((const float*)srow)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t*)srow)[j]); + switch (op) { + case GGML_OP_POOL_AVG: *out += srow_j; break; + case GGML_OP_POOL_MAX: if (srow_j > *out) *out = srow_j; break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + } + } + switch (op) { + case GGML_OP_POOL_AVG: *out /= ka; break; + case GGML_OP_POOL_MAX: break; + case GGML_OP_POOL_COUNT: GGML_ABORT("fatal error"); + } + } + } + + cdata += src->nb[2]; + dplane += pa; + } +} + +// ggml_compute_forward_pool_2d_back + +void ggml_compute_forward_pool_2d_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src = dst->src[0]; + const ggml_tensor * dstf = dst->src[1]; // forward tensor of dst + + assert(dst->type == GGML_TYPE_F32 || dst->type == GGML_TYPE_F16); + + if (params->ith != 0) { + return; + } + + const int32_t * opts = (const int32_t *)dst->op_params; + ggml_op_pool op = static_cast(opts[0]); + const int k0 = opts[1]; + const int k1 = opts[2]; + const int s0 = opts[3]; + const int s1 = opts[4]; + const int p0 = opts[5]; + const int p1 = opts[6]; + + char * cdata = (char *) dst->data; + const char * cdataf = (const char *) dstf->data; + const char * const data_end = cdata + ggml_nbytes(dst); + + GGML_ASSERT(params->ith == 0); + memset(cdata, 0, ggml_nbytes(dst)); + + const int64_t px = src->ne[0]; + const int64_t py = src->ne[1]; + const int64_t pa = px * py; + + const float * splane = (const float *) src->data; + + const int ka = k0 * k1; + const int offset0 = -p0; + const int offset1 = -p1; + + while (cdata < data_end) { + for (int oy = 0; oy < py; ++oy) { + const float * const srow = splane + oy * px; + for (int ox = 0; ox < px; ++ox) { + const float grad0 = srow[ox]; + + const int ix = offset0 + ox * s0; + const int iy = offset1 + oy * s1; + + if (op == GGML_OP_POOL_MAX) { + float maxval = -FLT_MAX; + int kxmax = -1; + int kymax = -1; + + for (int ky = 0; ky < k1; ++ky) { + if (iy + ky < 0 || iy + ky >= dst->ne[1]) { + continue; + } + const void * drowf = (const void *)(cdataf + dst->nb[1] * (iy + ky)); + for (int kx = 0; kx < k0; ++kx) { + int j = ix + kx; + if (j < 0 || j >= dst->ne[0]) { + continue; + } + + const float val = dst->type == GGML_TYPE_F32 ? + ((const float *) drowf)[j] : GGML_FP16_TO_FP32(((const ggml_fp16_t *) drowf)[j]); + if (val <= maxval) { + continue; + } + + maxval = val; + kxmax = kx; + kymax = ky; + } + } + + if (kxmax == -1 || kymax == -1) { + continue; + } + + void * drow = (void *)(cdata + dst->nb[1] * (iy + kymax)); + const int j = ix + kxmax; + if (dst->type == GGML_TYPE_F32) { + ((float *) drow)[j] += grad0; + } else { + ((ggml_fp16_t *) drow)[j] = GGML_FP32_TO_FP16(grad0 + GGML_FP16_TO_FP32(((const ggml_fp16_t *) drow)[j])); + } + } else if (op == GGML_OP_POOL_AVG) { + const float grad = grad0 / ka; + + for (int ky = 0; ky < k1; ++ky) { + if (iy + ky < 0 || iy + ky >= dst->ne[1]) { + continue; + } + void * drow = (void *)(cdata + dst->nb[1] * (iy + ky)); + for (int kx = 0; kx < k0; ++kx) { + int j = ix + kx; + if (j < 0 || j >= dst->ne[0]) { + continue; + } + + if (dst->type == GGML_TYPE_F32) { + ((float *) drow)[j] += grad; + } else { + ((ggml_fp16_t *) drow)[j] += GGML_FP32_TO_FP16(grad); + } + } + } + } else { + GGML_ASSERT(false); + } + } + } + + cdata += dst->nb[2]; + cdataf += dst->nb[2]; + splane += pa; + } +} + +// ggml_compute_forward_upscale + +static void ggml_compute_forward_upscale_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(src0->type == GGML_TYPE_F32); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + const float sf0 = (float)ne0/src0->ne[0]; + const float sf1 = (float)ne1/src0->ne[1]; + const float sf2 = (float)ne2/src0->ne[2]; + const float sf3 = (float)ne3/src0->ne[3]; + + // TODO: optimize + + for (int64_t i3 = 0; i3 < ne3; i3++) { + const int64_t i03 = i3 / sf3; + for (int64_t i2 = ith; i2 < ne2; i2 += nth) { + const int64_t i02 = i2 / sf2; + for (int64_t i1 = 0; i1 < ne1; i1++) { + const int64_t i01 = i1 / sf1; + for (int64_t i0 = 0; i0 < ne0; i0++) { + const int64_t i00 = i0 / sf0; + + const float * x = (float *)((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + float * y = (float *)((char *) dst->data + i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3); + + *y = *x; + } + } + } + } +} + +void ggml_compute_forward_upscale( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_upscale_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + + +// ggml_compute_forward_pad + +static void ggml_compute_forward_pad_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_ASSERT( dst->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + float * dst_ptr = (float *) dst->data; + + // TODO: optimize + + for (int64_t i2 = 0; i2 < ne2; ++i2) { + for (int64_t i1 = ith; i1 < ne1; i1 += nth) { + for (int64_t i0 = 0; i0 < ne0; ++i0) { + for (int64_t i3 = 0; i3 < ne3; ++i3) { + const int64_t dst_idx = i3*(ne0*ne1*ne2) + i2*(ne0*ne1) + i1*ne0 + i0; + + const float * src_ptr = (const float *)((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + dst_ptr[dst_idx] = *src_ptr; + } else { + dst_ptr[dst_idx] = 0; + } + } + } + } + } +} + +void ggml_compute_forward_pad( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_pad_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_pad_reflect_1d + +void ggml_compute_forward_pad_reflect_1d( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + + const int ith = params->ith; + const int nth = params->nth; + + const int32_t * opts = (const int32_t *) dst->op_params; + const int p0 = opts[0]; + const int p1 = opts[1]; + + GGML_TENSOR_UNARY_OP_LOCALS + + for (int64_t i3 = 0; i3 < ne3; i3++) { + for (int64_t i2 = 0; i2 < ne2; i2++) { + for (int64_t i1 = ith; i1 < ne1; i1 += nth) { + float * left = (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + p0*nb0); + float * right = (float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*nb1 + (ne0-p1-1)*nb0); + + ggml_vec_cpy_f32(ne00, left, (float *) ((char *) src0->data + i3*nb03 + i2*nb02 + i1*nb01)); + + for (int i0 = 1; i0 <= p0; i0++) { left[-i0] = left[i0]; } + for (int i0 = 1; i0 <= p1; i0++) { right[i0] = right[-i0]; } + } + } + } +} + +// ggml_compute_forward_arange + +static void ggml_compute_forward_arange_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + GGML_ASSERT(dst->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const float start = ggml_get_op_params_f32(dst, 0); + const float stop = ggml_get_op_params_f32(dst, 1); + const float step = ggml_get_op_params_f32(dst, 2); + + const int64_t steps = (int64_t) ceilf((stop - start) / step); + + GGML_ASSERT(ggml_nelements(dst) == steps); + + for (int64_t i = ith; i < steps; i+= nth) { + float value = start + step * i; + ((float *)dst->data)[i] = value; + } +} + +void ggml_compute_forward_arange( + const ggml_compute_params * params, + ggml_tensor * dst) { + switch (dst->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_arange_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +static void ggml_compute_forward_timestep_embedding_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_ASSERT(src0->nb[0] == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + GGML_TENSOR_UNARY_OP_LOCALS + + const int dim = ggml_get_op_params_i32(dst, 0); + const int max_period = ggml_get_op_params_i32(dst, 1); + + int half = dim / 2; + + for (int64_t i = 0; i < ne00; i++) { + float * embed_data = (float *)((char *) dst->data + i*nb1); + for (int64_t j = ith; j < half; j += nth) { + float timestep = ((float *)src0->data)[i]; + float freq = (float)expf(-logf(max_period) * j / half); + float arg = timestep * freq; + embed_data[j] = cosf(arg); + embed_data[j + half] = sinf(arg); + } + if (dim % 2 != 0 && ith == 0) { + embed_data[dim] = 0.f; + } + } +} + +void ggml_compute_forward_timestep_embedding( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_timestep_embedding_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_argsort + +static void ggml_compute_forward_argsort_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + GGML_TENSOR_UNARY_OP_LOCALS + + GGML_ASSERT(nb0 == sizeof(float)); + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t nr = ggml_nrows(src0); + + ggml_sort_order order = (ggml_sort_order) ggml_get_op_params_i32(dst, 0); + + for (int64_t i = ith; i < nr; i += nth) { + int32_t * dst_data = (int32_t *)((char *) dst->data + i*nb1); + const float * src_data = (float *)((char *) src0->data + i*nb01); + + for (int64_t j = 0; j < ne0; j++) { + dst_data[j] = j; + } + + // C doesn't have a functional sort, so we do a bubble sort instead + for (int64_t j = 0; j < ne0; j++) { + for (int64_t k = j + 1; k < ne0; k++) { + if ((order == GGML_SORT_ORDER_ASC && src_data[dst_data[j]] > src_data[dst_data[k]]) || + (order == GGML_SORT_ORDER_DESC && src_data[dst_data[j]] < src_data[dst_data[k]])) { + int32_t tmp = dst_data[j]; + dst_data[j] = dst_data[k]; + dst_data[k] = tmp; + } + } + } + } +} + +void ggml_compute_forward_argsort( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_argsort_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_flash_attn_ext + +static void ggml_compute_forward_flash_attn_ext_f16( + const ggml_compute_params * params, + const ggml_tensor * q, + const ggml_tensor * k, + const ggml_tensor * v, + const ggml_tensor * mask, + ggml_tensor * dst) { + + GGML_TENSOR_LOCALS(int64_t, neq, q, ne) + GGML_TENSOR_LOCALS(size_t, nbq, q, nb) + GGML_TENSOR_LOCALS(int64_t, nek, k, ne) + GGML_TENSOR_LOCALS(size_t, nbk, k, nb) + GGML_TENSOR_LOCALS(int64_t, nev, v, ne) + GGML_TENSOR_LOCALS(size_t, nbv, v, nb) + GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) + GGML_TENSOR_LOCALS(size_t, nb, dst, nb) + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t DK = nek0; + const int64_t DV = nev0; + const int64_t N = neq1; + + GGML_ASSERT(ne0 == DV); + GGML_ASSERT(ne2 == N); + + // input tensor rows must be contiguous + GGML_ASSERT(nbq0 == ggml_type_size(q->type)); + GGML_ASSERT(nbk0 == ggml_type_size(k->type)); + GGML_ASSERT(nbv0 == ggml_type_size(v->type)); + + GGML_ASSERT(neq0 == DK); + GGML_ASSERT(nek0 == DK); + GGML_ASSERT(nev0 == DV); + + GGML_ASSERT(neq1 == N); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); + + // broadcast factors + const int64_t rk2 = neq2/nek2; + const int64_t rk3 = neq3/nek3; + + const int64_t rv2 = neq2/nev2; + const int64_t rv3 = neq3/nev3; + + // parallelize by q rows using ggml_vec_dot_f32 + + // total rows in q + const int nr = neq1*neq2*neq3; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + float scale = 1.0f; + float max_bias = 0.0f; + float logit_softcap = 0.0f; + + memcpy(&scale, (float *) dst->op_params + 0, sizeof(float)); + memcpy(&max_bias, (float *) dst->op_params + 1, sizeof(float)); + memcpy(&logit_softcap, (float *) dst->op_params + 2, sizeof(float)); + + if (logit_softcap != 0) { + scale /= logit_softcap; + } + + const uint32_t n_head = neq2; + const uint32_t n_head_log2 = 1u << (uint32_t) floor(log2(n_head)); + + const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); + const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); + + ggml_type const k_vec_dot_type = ggml_get_type_traits_cpu(k->type)->vec_dot_type; + ggml_from_float_t const q_to_vec_dot = ggml_get_type_traits_cpu(k_vec_dot_type)->from_float; + ggml_vec_dot_t const kq_vec_dot = ggml_get_type_traits_cpu(k->type)->vec_dot; + ggml_to_float_t const v_to_float = ggml_get_type_traits(v->type)->to_float; + + GGML_ASSERT(q_to_vec_dot && "fattn: unsupported K-type"); + GGML_ASSERT(v_to_float && "fattn: unsupported V-type"); + + // loop over n_batch and n_head + for (int ir = ir0; ir < ir1; ++ir) { + // q indices + const int iq3 = ir/(neq2*neq1); + const int iq2 = (ir - iq3*neq2*neq1)/neq1; + const int iq1 = (ir - iq3*neq2*neq1 - iq2*neq1); + + const uint32_t h = iq2; // head index + const float slope = (max_bias > 0.0f) ? h < n_head_log2 ? powf(m0, h + 1) : powf(m1, 2*(h - n_head_log2) + 1) : 1.0f; + + float S = 0.0f; // sum + float M = -INFINITY; // maximum KQ value + + float * VKQ32 = (float *) params->wdata + ith*(1*DK + 2*DV + CACHE_LINE_SIZE_F32); // FP32 VKQ accumulator + float * V32 = (VKQ32 + 1*DV); // (temporary) FP32 V buffer + ggml_fp16_t * VKQ16 = (ggml_fp16_t *) (VKQ32 + 1*DV); // (temporary) FP16 VKQ accumulator + ggml_fp16_t * Q_q = (ggml_fp16_t *) (VKQ32 + 2*DV); // (temporary) buffer for Q converted to quantized/FP16 + + if (v->type == GGML_TYPE_F16) { + memset(VKQ16, 0, DV*sizeof(ggml_fp16_t)); + } else { + memset(VKQ32, 0, DV*sizeof(float)); + } + + const ggml_fp16_t * mp = mask ? (ggml_fp16_t *)((char *) mask->data + iq1*mask->nb[1]) : NULL; + + // k indices + const int ik3 = iq3 / rk3; + const int ik2 = iq2 / rk2; + + // v indices + const int iv3 = iq3 / rv3; + const int iv2 = iq2 / rv2; + + const float * pq = (const float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)); + q_to_vec_dot(pq, Q_q, DK); + + // online softmax / attention + // loop over n_kv and n_head_kv + // ref: https://arxiv.org/pdf/2112.05682.pdf + for (int64_t ic = 0; ic < nek1; ++ic) { + const float mv = mp ? slope*GGML_FP16_TO_FP32(mp[ic]) : 0.0f; + if (mv == -INFINITY) { + continue; + } + + float s; // KQ value + + const char * k_data = (const char *) k->data + ( ic*nbk1 + ik2*nbk2 + ik3*nbk3); + kq_vec_dot(DK, &s, 0, k_data, 0, Q_q, 0, 1); + + s = s*scale; // scale KQ value + + if (logit_softcap != 0.0f) { + s = logit_softcap*tanhf(s); + } + + s += mv; // apply mask + + const float Mold = M; + + float ms = 1.0f; // upon new higher max val, scale VKQ and KQ sum with this value + float vs = 1.0f; // post-softmax KQ value, expf(s - M) + + const char * v_data = ((const char *) v->data + (ic*nbv1 + iv2*nbv2 + iv3*nbv3)); + + if (v->type == GGML_TYPE_F16) { + if (s > M) { + // s is new maximum, ms < 1.0f, vs == expf(s - s) == 1.0f + M = s; + ms = expf(Mold - M); + + // V = V*expf(Mold - M) + ggml_vec_scale_f16(DV, VKQ16, ms); + } else { + // no new maximum, ms == 1.0f, vs != 1.0f + vs = expf(s - M); + } + + // V += v*expf(s - M) + ggml_vec_mad_f16(DV, VKQ16, (const ggml_fp16_t *) v_data, vs); + } else { + if (s > M) { + // s is new maximum, ms < 1.0f, vs == expf(s - s) == 1.0f + M = s; + ms = expf(Mold - M); + + // V = V*expf(Mold - M) + ggml_vec_scale_f32(DV, VKQ32, ms); + } else { + // no new maximum, ms == 1.0f, vs != 1.0f + vs = expf(s - M); + } + + v_to_float(v_data, V32, DV); + + // V += v*expf(s - M) + ggml_vec_mad_f32(DV, VKQ32, V32, vs); + } + + S = S*ms + vs; // scale and increment sum with partial sum + } + + if (v->type == GGML_TYPE_F16) { + for (int64_t d = 0; d < DV; ++d) { + VKQ32[d] = GGML_FP16_TO_FP32(VKQ16[d]); + } + } + + // V /= S + const float S_inv = 1.0f/S; + ggml_vec_scale_f32(DV, VKQ32, S_inv); + + // dst indices + const int i1 = iq1; + const int i2 = iq2; + const int i3 = iq3; + + // original + //memcpy((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb3), V, nev0*sizeof(float)); + + // permute(0, 2, 1, 3) + memcpy((char *) dst->data + (i3*ne2*ne1 + i2 + i1*ne1)*nb1, VKQ32, nb1); + } +} + +void ggml_compute_forward_flash_attn_ext( + const ggml_compute_params * params, + const ggml_tensor * q, + const ggml_tensor * k, + const ggml_tensor * v, + const ggml_tensor * mask, + ggml_tensor * dst) { + switch (dst->op_params[3]) { + case GGML_PREC_DEFAULT: + case GGML_PREC_F32: + { + // uses F32 accumulators + ggml_compute_forward_flash_attn_ext_f16(params, q, k, v, mask, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_flash_attn_back + +static void ggml_compute_forward_flash_attn_back_f32( + const ggml_compute_params * params, + const bool masked, + ggml_tensor * dst) { + + const ggml_tensor * q = dst->src[0]; + const ggml_tensor * k = dst->src[1]; + const ggml_tensor * v = dst->src[2]; + const ggml_tensor * d = dst->src[3]; + + GGML_TENSOR_LOCALS(int64_t, neq, q, ne) + GGML_TENSOR_LOCALS(size_t, nbq, q, nb) + GGML_TENSOR_LOCALS(int64_t, nek, k, ne) + GGML_TENSOR_LOCALS(size_t, nbk, k, nb) + GGML_TENSOR_LOCALS(int64_t, nev, v, ne) + GGML_TENSOR_LOCALS(size_t, nbv, v, nb) + GGML_TENSOR_LOCALS(int64_t, ned, d, ne) + GGML_TENSOR_LOCALS(size_t, nbd, d, nb) + GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) + GGML_TENSOR_LOCALS(size_t, nb, dst, nb) + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t D = neq0; + const int64_t N = neq1; + const int64_t P = nek1 - N; + const int64_t M = P + N; + + const int Mup = ggml_up(M, GGML_SOFT_MAX_UNROLL); + const int mxDM = MAX(D, Mup); + + // GGML_ASSERT(ne0 == D); + // GGML_ASSERT(ne1 == N); + GGML_ASSERT(P >= 0); + + GGML_ASSERT(nbq0 == sizeof(float)); + GGML_ASSERT(nbk0 == sizeof(float)); + GGML_ASSERT(nbv0 == sizeof(float)); + + GGML_ASSERT(neq0 == D); + GGML_ASSERT(nek0 == D); + GGML_ASSERT(nev1 == D); + GGML_ASSERT(ned0 == D); + + GGML_ASSERT(neq1 == N); + GGML_ASSERT(nek1 == N + P); + GGML_ASSERT(nev1 == D); + GGML_ASSERT(ned1 == N); + + // dst cannot be transposed or permuted + GGML_ASSERT(nb0 == sizeof(float)); + GGML_ASSERT(nb0 <= nb1); + GGML_ASSERT(nb1 <= nb2); + GGML_ASSERT(nb2 <= nb3); + + if (ith == 0) { + memset(dst->data, 0, nb0*ne0*ne1*ne2*ne3); + } + ggml_barrier(params->threadpool); + + const int64_t elem_q = ggml_nelements(q); + const int64_t elem_k = ggml_nelements(k); + + ggml_type result_type = dst->type; + GGML_ASSERT(ggml_blck_size(result_type) == 1); + const size_t tsize = ggml_type_size(result_type); + + const size_t offs_q = 0; + const size_t offs_k = offs_q + GGML_PAD(elem_q * tsize, GGML_MEM_ALIGN); + const size_t offs_v = offs_k + GGML_PAD(elem_k * tsize, GGML_MEM_ALIGN); + + void * grad_q = (char *) dst->data; + void * grad_k = (char *) dst->data + offs_k; + void * grad_v = (char *) dst->data + offs_v; + + const size_t nbgq1 = nb0*neq0; + const size_t nbgq2 = nb0*neq0*neq1; + const size_t nbgq3 = nb0*neq0*neq1*neq2; + + const size_t nbgk1 = nb0*nek0; + const size_t nbgk2 = nb0*nek0*nek1; + const size_t nbgk3 = nb0*nek0*nek1*neq2; + + const size_t nbgv1 = nb0*nev0; + const size_t nbgv2 = nb0*nev0*nev1; + const size_t nbgv3 = nb0*nev0*nev1*neq2; + + // parallelize by k rows using ggml_vec_dot_f32 + + // total rows in k + const int nr = nek2*nek3; + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + const float scale = 1.0f/sqrtf(D); + + //printf("P=%d N=%d D=%d ir0=%d ir1=%d scale = %f\n", P, N, D, ir0, ir1, scale); + + // how often k2 (and v2) is repeated in q2 + int nrep = neq2/nek2; + + for (int ir = ir0; ir < ir1; ++ir) { + // q indices + const int ik3 = ir/(nek2); + const int ik2 = ir - ik3*nek2; + + const int iq3 = ik3; + const int id3 = ik3; + const int iv3 = ik3; + const int iv2 = ik2; + + for (int irep = 0; irep < nrep; ++irep) { + const int iq2 = ik2 + irep*nek2; + const int id2 = iq2; + + // (ik2 + irep*nek2) % nek2 == ik2 + for (int iq1 = 0; iq1 < neq1; ++iq1) { + const int id1 = iq1; + + // not sure about CACHE_LINE_SIZE_F32.. + // - maybe it must not be multiplied by 2 and excluded from .. in SM 1*(..) offset? + float * S = (float *) params->wdata + ith*2*(mxDM + CACHE_LINE_SIZE_F32) + 0*(mxDM+CACHE_LINE_SIZE_F32); + float * SM = (float *) params->wdata + ith*2*(mxDM + CACHE_LINE_SIZE_F32) + 1*(mxDM+CACHE_LINE_SIZE_F32); + + for (int i = M; i < Mup; ++i) { + S[i] = -INFINITY; + } + + const int64_t masked_begin = masked ? (P + iq1 + 1) : M; + for (int64_t ic = 0; ic < masked_begin; ++ic) { + // k indices + const int ik1 = ic; + + // S indices + const int i1 = ik1; + + ggml_vec_dot_f32(neq0, + S + i1, 0, + (float *) ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), 0, + (float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)), 0, 1); + } + + // scale + ggml_vec_scale_f32(masked_begin, S, scale); + + for (int64_t i = masked_begin; i < M; i++) { + S[i] = -INFINITY; + } + + // softmax + // exclude known -INF S[..] values from max and loop + // dont forget to set their SM values to zero + { + float max = -INFINITY; + ggml_vec_max_f32(masked_begin, &max, S); + + ggml_float sum = 0.0; + { +#ifdef GGML_SOFT_MAX_ACCELERATE + max = -max; + vDSP_vsadd(SM, 1, &max, SM, 1, Mup); + vvexpf(SM, SM, &Mup); + ggml_vec_sum_f32(Mup, &sum, SM); +#else + sum = ggml_vec_soft_max_f32(Mup, SM, S, max); +#endif + } + + assert(sum > 0.0); + + sum = 1.0/sum; + ggml_vec_scale_f32(masked_begin, SM, sum); + + } + + // step-by-step explanation + { + // forward-process shape grads from backward process + // parallel_for ik2,ik3: + // for irep: + // iq2 = ik2 + irep*nek2 + // k[:D,:M,:,:] [D,M,:,:] grad[k][:D,:M,ik2,ik3] += grad[kcur] + // q[:D,:N,:,:] [D,N,:,:] grad[q][:D,iq1,iq2,iq3] += grad[qcur] + // v[:M,:D,:,:] [M,D,:,:] grad[v][:M,:D,iv2,iv3] += grad[vcur] + // for iq1: + // kcur = k[:D,:M,ik2,ik3] [D,M,1,1] grad[kcur] = grad[S1].T @ qcur + // qcur = q[:D,iq1,iq2,iq3] [D,1,1,1] grad[qcur] = grad[S1] @ kcur + // vcur = v[:M,:D,iv2,iv3] [M,D,1,1] grad[vcur] = grad[S5].T @ S4 + // S0 = -Inf [D,1,1,1] + // ~S1[i] = dot(kcur[:D,i], qcur) + // S1 = qcur @ kcur.T [M,1,1,1] grad[S1] = grad[S2] * scale + // S2 = S1 * scale [M,1,1,1] grad[S2] = diag_mask_zero(grad[S3], P) + // S3 = diag_mask_inf(S2, P) [M,1,1,1] grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) + // S4 = softmax(S3) [M,1,1,1] grad[S4] = grad[S5] @ vcur + // ~S5[i] = dot(vcur[:,i], S4) + // S5 = S4 @ vcur.T [D,1,1,1] grad[S5] = d[:D,id1,id2,id3] + // ~dst[i,iq1,iq2,iq3] = S5[i] ^ + // dst[:D,iq1,iq2,iq3] = S5 | grad[dst[:D,iq1,iq2,iq3]] = d[:D,id1,id2,id3] + // dst backward-/ grad[dst] = d + // + // output gradients with their dependencies: + // + // grad[kcur] = grad[S1].T @ qcur + // grad[S1] = diag_mask_zero(grad[S3], P) * scale + // grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) + // grad[S4] = grad[S5] @ vcur + // grad[S4] = d[:D,id1,id2,id3] @ vcur + // grad[qcur] = grad[S1] @ kcur + // grad[vcur] = grad[S5].T @ S4 + // grad[vcur] = d[:D,id1,id2,id3].T @ S4 + // + // in post-order: + // + // S1 = qcur @ kcur.T + // S2 = S1 * scale + // S3 = diag_mask_inf(S2, P) + // S4 = softmax(S3) + // grad[S4] = d[:D,id1,id2,id3] @ vcur + // grad[S3] = S4 * (grad[S4] - dot(S4, grad[S4])) + // grad[S1] = diag_mask_zero(grad[S3], P) * scale + // grad[qcur] = grad[S1] @ kcur + // grad[kcur] = grad[S1].T @ qcur + // grad[vcur] = d[:D,id1,id2,id3].T @ S4 + // + // using less variables (SM=S4): + // + // S = diag_mask_inf(qcur @ kcur.T * scale, P) + // SM = softmax(S) + // S = d[:D,iq1,iq2,iq3] @ vcur + // dot_SM_gradSM = dot(SM, S) + // S = SM * (S - dot(SM, S)) + // S = diag_mask_zero(S, P) * scale + // + // grad[q][:D,iq1,iq2,iq3] += S @ kcur + // grad[k][:D,:M,ik2,ik3] += S.T @ qcur + // grad[v][:M,:D,iv2,iv3] += d[:D,id1,id2,id3].T @ SM + } + + // S = gradSM = d[:D,id1,id2,id3] @ vcur[:,:,iv2,iv3] + // S = d[:D,id1,id2,id3] @ vcur[:,:,iv2,iv3] + // for ic: + // S[:M] += vcur[:M,ic,iv2,iv3] * d[ic,id1,id2,id3] + // exclude known future zero S[..] values from operation + ggml_vec_set_f32(masked_begin, S, 0); + for (int64_t ic = 0; ic < D; ++ic) { + ggml_vec_mad_f32(masked_begin, + S, + (float *) ((char *) v->data + ( ic*nbv1 + iv2*nbv2 + iv3*nbv3)), + *(float *) ((char *) d->data + (ic*nbd0 + id1*nbd1 + id2*nbd2 + id3*nbd3))); + } + + // S = SM * (S - dot(SM, S)) + float dot_SM_gradSM = 0; + ggml_vec_dot_f32 (masked_begin, &dot_SM_gradSM, 0, SM, 0, S, 0, 1); + ggml_vec_acc1_f32(M, S, -dot_SM_gradSM); + ggml_vec_mul_f32 (masked_begin, S, S, SM); + + // S = diag_mask_zero(S, P) * scale + // already done by above ggml_vec_set_f32 + + // exclude known zero S[..] values from operation + ggml_vec_scale_f32(masked_begin, S, scale); + + // S shape [M,1] + // SM shape [M,1] + // kcur shape [D,M] + // qcur shape [D,1] + // vcur shape [M,D] + + // grad[q][:D,iq1,iq2,iq3] += S @ kcur + // grad[q][:D,iq1,iq2,iq3] += shape[M,1] @ shape[D,M] + // for ic: + // grad[q][:D,iq1,iq2,iq3] += S[ic] * kcur[:D,ic,ik2,ik3] + // exclude known zero S[..] values from loop + for (int64_t ic = 0; ic < masked_begin; ++ic) { + ggml_vec_mad_f32(D, + (float *) ((char *) grad_q + (iq1*nbgq1 + iq2*nbgq2 + iq3*nbgq3)), + (float *) ((char *) k->data + (ic*nbk1 + ik2*nbk2 + ik3*nbk3)), + S[ic]); + } + + // grad[k][:D,:M,iq2,iq3] += S.T @ qcur + // for ic: + // grad[k][:D,ic,iq2,iq3] += S.T[0,ic] * qcur[:D,0] + // grad[k][:D,ic,iq2,iq3] += S[ic] * qcur[:D,0] + // exclude known zero S[..] values from loop + for (int64_t ic = 0; ic < masked_begin; ++ic) { + ggml_vec_mad_f32(D, + (float *) ((char *) grad_k + (ic*nbgk1 + ik2*nbgk2 + ik3*nbgk3)), + (float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3)), + S[ic]); + } + + // grad[v][:M,:D,iv2,iv3] += d[:D,id1,id2,id3].T @ SM + // for ic: + // grad[v][:M,ic,iv2,iv3] += d[:D,id1,id2,id3].T[0,ic] * SM[:M] + // grad[v][:M,ic,iv2,iv3] += d[ic,id1,id2,id3] * SM[:M] + // exclude known zero SM[..] values from mad + for (int64_t ic = 0; ic < D; ++ic) { + ggml_vec_mad_f32(masked_begin, + (float *) ((char *) grad_v + ( ic*nbgv1 + iv2*nbgv2 + iv3*nbgv3)), + SM, + *(float *) ((char *) d->data + (ic*nbd0 + id1*nbd1 + id2*nbd2 + id3*nbd3))); + } + } + } + } +} + +void ggml_compute_forward_flash_attn_back( + const ggml_compute_params * params, + const bool masked, + ggml_tensor * dst) { + + const ggml_tensor * q = dst->src[0]; + + switch (q->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_flash_attn_back_f32(params, masked, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_ssm_conv + +static void ggml_compute_forward_ssm_conv_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + const ggml_tensor * src0 = dst->src[0]; // conv_x + const ggml_tensor * src1 = dst->src[1]; // conv1d.weight + + const int ith = params->ith; + const int nth = params->nth; + + const int nc = src1->ne[0]; // d_conv + const int ncs = src0->ne[0]; // d_conv - 1 + n_t + const int nr = src0->ne[1]; // d_inner + const int n_t = dst->ne[1]; // tokens per sequence + const int n_s = dst->ne[2]; // number of sequences in the batch + + GGML_ASSERT( dst->ne[0] == nr); + GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_ASSERT(src1->nb[0] == sizeof(float)); + GGML_ASSERT(src0->nb[1] == src0->ne[0]*sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + const int ir = ir1 - ir0; + + for (int i3 = 0; i3 < n_s; ++i3) { + for (int i2 = 0; i2 < n_t; ++i2) { + // {d_conv - 1 + n_t, d_inner, n_seqs} + // sliding window + const float * s = (const float *) ((const char *) src0->data + ir0*(src0->nb[1]) + i2*(src0->nb[0]) + i3*(src0->nb[2])); // {d_conv, d_inner, n_s} + const float * c = (const float *) ((const char *) src1->data + ir0*(src1->nb[1])); // {d_conv, d_inner} + float * x = (float *) ((char *) dst->data + ir0*(dst->nb[0]) + i2*(dst->nb[1]) + i3*(dst->nb[2])); // {d_inner, n_t, n_s} + + // TODO: transpose the output for smaller strides for big batches? + // d_inner + for (int i1 = 0; i1 < ir; ++i1) { + // rowwise dot product + // NOTE: not using ggml_vec_dot_f32, because its sum is in double precision + float sumf = 0.0f; + + // d_conv + for (int i0 = 0; i0 < nc; ++i0) { + sumf += s[i0 + i1*ncs] * c[i0 + i1*nc]; + } + x[i1] = sumf; + } + } + } +} + +void ggml_compute_forward_ssm_conv( + const ggml_compute_params * params, + ggml_tensor * dst) { + switch (dst->src[0]->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_ssm_conv_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_ssm_scan + +static void ggml_compute_forward_ssm_scan_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + const ggml_tensor * src0 = dst->src[0]; // s + const ggml_tensor * src1 = dst->src[1]; // x + const ggml_tensor * src2 = dst->src[2]; // dt + const ggml_tensor * src3 = dst->src[3]; // A + const ggml_tensor * src4 = dst->src[4]; // B + const ggml_tensor * src5 = dst->src[5]; // C + + const int ith = params->ith; + const int nth = params->nth; + + const int64_t nc = src0->ne[0]; // d_state + const int64_t nr = src0->ne[1]; // d_inner + const int64_t n_t = src1->ne[1]; // number of tokens per sequence + const int64_t n_s = src0->ne[2]; // number of sequences in the batch + + GGML_ASSERT(ggml_nelements(src1) + ggml_nelements(src0) == ggml_nelements(dst)); + GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_ASSERT(src1->nb[0] == sizeof(float)); + GGML_ASSERT(src2->nb[0] == sizeof(float)); + GGML_ASSERT(src3->nb[0] == sizeof(float)); + GGML_ASSERT(src4->nb[0] == sizeof(float)); + GGML_ASSERT(src5->nb[0] == sizeof(float)); + // required for the dot product between s and C + GGML_ASSERT(src0->nb[1] == src0->ne[0]*sizeof(float)); + // required for per-sequence offsets for states + GGML_ASSERT(src0->nb[2] == src0->ne[0]*src0->ne[1]*sizeof(float)); + // required to get correct offset for state destination (i.e. src1->nb[3]) + GGML_ASSERT(src1->nb[3] == src1->ne[0]*src1->ne[1]*src1->ne[2]*sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + const int ir = ir1 - ir0; + + for (int i3 = 0; i3 < n_s; ++i3) { + for (int i2 = 0; i2 < n_t; ++i2) { + const float * s0 = (const float *) ((const char *) src0->data + ir0*(src0->nb[1]) + i3*(src0->nb[2])); // {d_state, d_inner, n_s} + const float * x = (const float *) ((const char *) src1->data + ir0*(src1->nb[0]) + i2*(src1->nb[1]) + i3*(src1->nb[2])); // {d_inner, n_t, n_s} + const float * dt = (const float *) ((const char *) src2->data + ir0*(src2->nb[0]) + i2*(src2->nb[1]) + i3*(src2->nb[2])); // {d_inner, n_t, n_s} + const float * A = (const float *) ((const char *) src3->data + ir0*(src3->nb[1])); // {d_state, d_inner} + const float * B = (const float *) ((const char *) src4->data + i2*(src4->nb[1]) + i3*(src4->nb[2])); // {d_state, n_t, n_s} + const float * C = (const float *) ((const char *) src5->data + i2*(src5->nb[1]) + i3*(src5->nb[2])); // {d_state, n_t, n_s} + float * y = ( float *) (( char *) dst->data + ir0*(src1->nb[0]) + i2*(src1->nb[1]) + i3*(src1->nb[2])); // {d_inner, n_t, n_s} + float * s = ( float *) (( char *) dst->data + ir0*(src0->nb[1]) + i3*(src0->nb[2]) + src1->nb[3]); // {d_state, d_inner, n_s} + + // use the output as the source for the next token-wise iterations + if (i2 > 0) { s0 = s; } + + // d_inner + for (int i1 = 0; i1 < ir; ++i1) { + // ref: https://github.com/state-spaces/mamba/blob/34076d664838588a3c97727b263478ab9f621a07/mamba_ssm/ops/triton/selective_state_update.py#L78 + float dt_soft_plus = dt[i1] <= 20.0f ? log1pf(expf(dt[i1])) : dt[i1]; + float x_dt = x[i1] * dt_soft_plus; + float sumf = 0.0f; + // d_state + for (int i0 = 0; i0 < nc; ++i0) { + int i = i0 + i1*nc; + // state = prev_state * dA + dB * x + float state = (s0[i] * expf(dt_soft_plus * A[i])) + (B[i0] * x_dt); + // y = rowwise_dotprod(state, C) + sumf += state * C[i0]; + s[i] = state; + } + y[i1] = sumf; + } + } + } +} + +void ggml_compute_forward_ssm_scan( + const ggml_compute_params * params, + ggml_tensor * dst) { + switch (dst->src[0]->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_ssm_scan_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_win_part + +static void ggml_compute_forward_win_part_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + GGML_UNUSED(params); + + const ggml_tensor * src0 = dst->src[0]; + + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) + GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) + + const int32_t nep0 = ((const int32_t *)(dst->op_params))[0]; + const int32_t nep1 = ((const int32_t *)(dst->op_params))[1]; + const int32_t w = ((const int32_t *)(dst->op_params))[2]; + + assert(ne00 == ne0); + assert(ne3 == nep0*nep1); + + // TODO: optimize / multi-thread + for (int py = 0; py < nep1; ++py) { + for (int px = 0; px < nep0; ++px) { + const int64_t i3 = py*nep0 + px; + for (int64_t i2 = 0; i2 < ne2; ++i2) { + for (int64_t i1 = 0; i1 < ne1; ++i1) { + for (int64_t i0 = 0; i0 < ne0; ++i0) { + const int64_t i02 = py*w + i2; + const int64_t i01 = px*w + i1; + const int64_t i00 = i0; + + const int64_t i = i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0 + i0; + const int64_t j = i02*ne01*ne00 + i01*ne00 + i00; + + if (py*w + i2 >= ne02 || px*w + i1 >= ne01) { + ((float *) dst->data)[i] = 0.0f; + } else { + ((float *) dst->data)[i] = ((float *) src0->data)[j]; + } + } + } + } + } + } +} + +void ggml_compute_forward_win_part( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_win_part_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_win_unpart + +static void ggml_compute_forward_win_unpart_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + GGML_UNUSED(params); + + const ggml_tensor * src0 = dst->src[0]; + + GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) + GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) + + const int32_t w = ((const int32_t *)(dst->op_params))[0]; + + // padding + const int px = (w - ne1%w)%w; + //const int py = (w - ne2%w)%w; + + const int npx = (px + ne1)/w; + //const int npy = (py + ne2)/w; + + assert(ne0 == ne00); + + // TODO: optimize / multi-thread + for (int64_t i2 = 0; i2 < ne2; ++i2) { + for (int64_t i1 = 0; i1 < ne1; ++i1) { + for (int64_t i0 = 0; i0 < ne0; ++i0) { + const int ip2 = i2/w; + const int ip1 = i1/w; + + const int64_t i02 = i2%w; + const int64_t i01 = i1%w; + const int64_t i00 = i0; + + const int64_t i = (ip2*npx + ip1)*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00 + i00; + const int64_t j = i2*ne1*ne0 + i1*ne0 + i0; + + ((float *) dst->data)[j] = ((float *) src0->data)[i]; + } + } + } +} + +void ggml_compute_forward_win_unpart( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_win_unpart_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +//gmml_compute_forward_unary + +void ggml_compute_forward_unary( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_unary_op op = ggml_get_unary_op(dst); + + switch (op) { + case GGML_UNARY_OP_ABS: + { + ggml_compute_forward_abs(params, dst); + } break; + case GGML_UNARY_OP_SGN: + { + ggml_compute_forward_sgn(params, dst); + } break; + case GGML_UNARY_OP_NEG: + { + ggml_compute_forward_neg(params, dst); + } break; + case GGML_UNARY_OP_STEP: + { + ggml_compute_forward_step(params, dst); + } break; + case GGML_UNARY_OP_TANH: + { + ggml_compute_forward_tanh(params, dst); + } break; + case GGML_UNARY_OP_ELU: + { + ggml_compute_forward_elu(params, dst); + } break; + case GGML_UNARY_OP_RELU: + { + ggml_compute_forward_relu(params, dst); + } break; + case GGML_UNARY_OP_SIGMOID: + { + ggml_compute_forward_sigmoid(params, dst); + } break; + case GGML_UNARY_OP_GELU: + { + ggml_compute_forward_gelu(params, dst); + } break; + case GGML_UNARY_OP_GELU_QUICK: + { + ggml_compute_forward_gelu_quick(params, dst); + } break; + case GGML_UNARY_OP_SILU: + { + ggml_compute_forward_silu(params, dst); + } break; + case GGML_UNARY_OP_HARDSWISH: + { + ggml_compute_forward_hardswish(params, dst); + } break; + case GGML_UNARY_OP_HARDSIGMOID: + { + ggml_compute_forward_hardsigmoid(params, dst); + } break; + case GGML_UNARY_OP_EXP: + { + ggml_compute_forward_exp(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_get_rel_pos + +static void ggml_compute_forward_get_rel_pos_f16( + const ggml_compute_params * params, + ggml_tensor * dst) { + GGML_UNUSED(params); + + const ggml_tensor * src0 = dst->src[0]; + + // ref: https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/modeling/image_encoder.py#L292-L322 + + GGML_TENSOR_UNARY_OP_LOCALS + + const int64_t w = ne1; + + ggml_fp16_t * src0_data = (ggml_fp16_t *) src0->data; + ggml_fp16_t * dst_data = (ggml_fp16_t *) dst->data; + + for (int64_t i2 = 0; i2 < ne2; ++i2) { + for (int64_t i1 = 0; i1 < ne1; ++i1) { + const int64_t pos = (w - i1 - 1) + i2; + for (int64_t i0 = 0; i0 < ne0; ++i0) { + dst_data[i2*ne1*ne0 + i1*ne0 + i0] = src0_data[pos*ne00 + i0]; + } + } + } +} + +void ggml_compute_forward_get_rel_pos( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + { + ggml_compute_forward_get_rel_pos_f16(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_add_rel_pos + +static void ggml_compute_forward_add_rel_pos_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + const ggml_tensor * src2 = dst->src[2]; + + const bool inplace = (bool) ((int32_t *) dst->op_params)[0]; + if (!inplace) { + if (params->ith == 0) { + memcpy((char *) dst->data, (char *) src0->data, ggml_nbytes(dst)); + } + ggml_barrier(params->threadpool); + } + // ref: https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/modeling/image_encoder.py#L357-L359 + + float * src1_data = (float *) src1->data; + float * src2_data = (float *) src2->data; + float * dst_data = (float *) dst->data; + + const int64_t ne10 = src1->ne[0]; + const int64_t ne11 = src1->ne[1]; + const int64_t ne12 = src1->ne[2]; + const int64_t ne13 = src1->ne[3]; + + const int ith = params->ith; + const int nth = params->nth; + + // total patches in dst + const int np = ne13; + + // patches per thread + const int dp = (np + nth - 1)/nth; + + // patch range for this thread + const int ip0 = dp*ith; + const int ip1 = MIN(ip0 + dp, np); + + for (int64_t i13 = ip0; i13 < ip1; ++i13) { + for (int64_t i12 = 0; i12 < ne12; ++i12) { + for (int64_t i11 = 0; i11 < ne11; ++i11) { + const int64_t jp1 = i13*ne12*ne11*ne10 + i12*ne11*ne10 + i11*ne10; + for (int64_t i10 = 0; i10 < ne10; ++i10) { + const int64_t jp0 = jp1 + i10; + const float src1_e = src1_data[jp0]; + const float src2_e = src2_data[jp0]; + + const int64_t jdh = jp0 * ne10; + const int64_t jdw = jdh - (ne10 - 1) * i10; + + for (int64_t j = 0; j < ne10; ++j) { + dst_data[jdh + j ] += src2_e; + dst_data[jdw + j*ne10] += src1_e; + } + } + } + } + } +} + +void ggml_compute_forward_add_rel_pos( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_add_rel_pos_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_rwkv_wkv6 + +static void ggml_compute_forward_rwkv_wkv6_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + const int64_t T = dst->src[1]->ne[2]; + const int64_t C = dst->ne[0]; + const int64_t HEADS = dst->src[1]->ne[1]; + const int64_t n_seqs = dst->src[5]->ne[1]; + const int64_t head_size = C / HEADS; + + float * dst_data = (float *) dst->data; + float * state = ((float *) dst->data) + C * T; + + const int ith = params->ith; + const int nth = params->nth; + + if (ith >= HEADS) { + return; + } + + const int h_start = (HEADS * ith) / nth; + const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? + (HEADS * (ith + 1)) / nth : HEADS; + + float * k = (float *) dst->src[0]->data; + float * v = (float *) dst->src[1]->data; + float * r = (float *) dst->src[2]->data; + float * time_faaaa = (float *) dst->src[3]->data; + float * time_decay = (float *) dst->src[4]->data; + + size_t t_stride = HEADS * head_size; // Same to C + + size_t h_stride = C / HEADS; + GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS + size_t h_stride_2d = head_size * head_size; + + if (ith == 0) { + memset(dst_data, 0, T * C * sizeof(float)); + } + ggml_barrier(params->threadpool); + + + #if defined(__AVX__) && !defined(__AVX512F__) + #define GGML_F32X GGML_F32x8 + #define GGML_F32X_SET1 GGML_F32x8_SET1 + #define GGML_F32X_LOAD GGML_F32x8_LOAD + #define GGML_F32X_STORE GGML_F32x8_STORE + #define GGML_F32X_MUL GGML_F32x8_MUL + #define GGML_F32X_FMA GGML_F32x8_FMA + #define WKV_VECTOR_SIZE 8 + #elif defined(__AVX512F__) + #define GGML_F32X GGML_F32x16 + #define GGML_F32X_SET1 GGML_F32x16_SET1 + #define GGML_F32X_LOAD GGML_F32x16_LOAD + #define GGML_F32X_STORE GGML_F32x16_STORE + #define GGML_F32X_MUL GGML_F32x16_MUL + #define GGML_F32X_FMA GGML_F32x16_FMA + #define WKV_VECTOR_SIZE 16 + #elif defined(__ARM_NEON) && defined(__aarch64__) + #define GGML_F32X GGML_F32x4 + #define GGML_F32X_SET1 GGML_F32x4_SET1 + #define GGML_F32X_LOAD GGML_F32x4_LOAD + #define GGML_F32X_STORE GGML_F32x4_STORE + #define GGML_F32X_MUL GGML_F32x4_MUL + #define GGML_F32X_FMA GGML_F32x4_FMA + #define WKV_VECTOR_SIZE 4 + #endif + + #ifdef WKV_VECTOR_SIZE + const int64_t vec_count = head_size / WKV_VECTOR_SIZE; + + for (int64_t t = 0; t < T; t++) { + size_t t_offset = t * t_stride; + size_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[5]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + size_t h_offset = h * h_stride; + size_t t_h_offset = t_offset + h_offset; + size_t h_2d_offset = h * h_stride_2d; + + for (int64_t i = 0; i < head_size; i++) { + size_t t_h_i_offset = t_h_offset + i; + size_t h_i_offset = h_offset + i; + size_t h_2d_i_offset = h_2d_offset + i * h_stride; + + float k_val = k[t_h_i_offset]; + float r_val = r[t_h_i_offset]; + float time_faaaa_val = time_faaaa[h_i_offset]; + float time_decay_val = time_decay[t_h_i_offset]; + + // Broadcast scalar values to vectors + GGML_F32X k_vec = GGML_F32X_SET1(k_val); + GGML_F32X r_vec = GGML_F32X_SET1(r_val); + GGML_F32X time_faaaa_vec = GGML_F32X_SET1(time_faaaa_val); + GGML_F32X time_decay_vec = GGML_F32X_SET1(time_decay_val); + + for (int64_t j = 0; j < vec_count; j++) { + size_t base_j = j * WKV_VECTOR_SIZE; + size_t t_h_j_offset = t_h_offset + base_j; + size_t h_2d_i_j_offset = h_2d_i_offset + base_j; + + // Load x elements at once + GGML_F32X v_vec = GGML_F32X_LOAD(&v[t_h_j_offset]); + GGML_F32X prev_state_vec = GGML_F32X_LOAD(&state_prev[h_2d_i_j_offset]); + GGML_F32X dst_vec = GGML_F32X_LOAD(&dst_data[t_h_j_offset]); + + // Compute kv = v * k + GGML_F32X kv_vec = GGML_F32X_MUL(v_vec, k_vec); + + // Compute temp = kv * time_faaaa + prev_state + GGML_F32X temp_vec = GGML_F32X_FMA(prev_state_vec, kv_vec, time_faaaa_vec); + + // Update dst: dst += temp * r + dst_vec = GGML_F32X_FMA(dst_vec, temp_vec, r_vec); + GGML_F32X_STORE(&dst_data[t_h_j_offset], dst_vec); + + // Update state: state = prev_state * time_decay + kv + GGML_F32X new_state_vec = GGML_F32X_FMA(kv_vec, prev_state_vec, time_decay_vec); + GGML_F32X_STORE(&state_cur[h_2d_i_j_offset], new_state_vec); + } + + // Handle remaining elements, this will not be used. + for (int64_t j = vec_count * WKV_VECTOR_SIZE; j < head_size; j++) { + size_t t_h_j_offset = t_h_offset + j; + size_t h_2d_i_j_offset = h_2d_i_offset + j; + float v_val = v[t_h_j_offset]; + float kv_val = v_val * k_val; + float prev_state_val = state_prev[h_2d_i_j_offset]; + float temp_val = kv_val * time_faaaa_val + prev_state_val; + dst_data[t_h_j_offset] += temp_val * r_val; + state_cur[h_2d_i_j_offset] = prev_state_val * time_decay_val + kv_val; + } + } + } + } + + #else + // basically fused operations: + // dst = r @ (time_faaaa * (k @ v) + state), + // state = time_decay * state + (k @ v), + // recursive through each token + for (int64_t t = 0; t < T; t++) { + size_t t_offset = t * t_stride; + size_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[5]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + size_t h_offset = h * h_stride; + size_t t_h_offset = t_offset + h_offset; + size_t h_2d_offset = h * h_stride_2d; + + for (int64_t i = 0; i < head_size; i++) { + size_t t_h_i_offset = t_h_offset + i; + size_t h_i_offset = h_offset + i; + size_t h_2d_i_offset = h_2d_offset + i * h_stride; + + float k_val = k[t_h_i_offset]; + float r_val = r[t_h_i_offset]; + float time_faaaa_val = time_faaaa[h_i_offset]; + // RWKV v6: different time_decay for each token. + float time_decay_val = time_decay[t_h_i_offset]; + + for (int64_t j = 0; j < head_size; j++) { + size_t t_h_j_offset = t_h_offset + j; + size_t h_2d_i_j_offset = h_2d_i_offset + j; + + float v_val = v[t_h_j_offset]; + float kv_val = v_val * k_val; + float prev_state_val = state_prev[h_2d_i_j_offset]; + float temp_val = kv_val * time_faaaa_val + prev_state_val; + dst_data[t_h_j_offset] += temp_val * r_val; + state_cur[h_2d_i_j_offset] = prev_state_val * time_decay_val + kv_val; + } + } + } + } + #endif +} + + +void ggml_compute_forward_rwkv_wkv6( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_rwkv_wkv6_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_gla + +static void ggml_compute_forward_gla_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + const int64_t T = dst->src[1]->ne[2]; + const int64_t C = dst->ne[0]; + const int64_t HEADS = dst->src[1]->ne[1]; + const int64_t n_seqs = dst->src[4]->ne[1]; + const int64_t head_size = C / HEADS; + const float scale = ggml_get_op_params_f32(dst, 0); + + float * dst_data = (float *) dst->data; + float * state = ((float *) dst->data) + C * T; + + const int ith = params->ith; + const int nth = params->nth; + + if (ith >= HEADS) { + return; + } + + const int h_start = (HEADS * ith) / nth; + const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? + (HEADS * (ith + 1)) / nth : HEADS; + + float * k = (float *) dst->src[0]->data; + float * v = (float *) dst->src[1]->data; + float * q = (float *) dst->src[2]->data; + float * g = (float *) dst->src[3]->data; + + size_t t_stride = HEADS * head_size; // Same to C + + size_t h_stride = C / HEADS; + GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS + size_t h_stride_2d = head_size * head_size; + + if (ith == 0) { + memset(dst_data, 0, T * C * sizeof(float)); + } + ggml_barrier(params->threadpool); + + + #if defined(__AVX__) && !defined(__AVX512F__) + #define GGML_F32X GGML_F32x8 + #define GGML_F32X_SET1 GGML_F32x8_SET1 + #define GGML_F32X_LOAD GGML_F32x8_LOAD + #define GGML_F32X_STORE GGML_F32x8_STORE + #define GGML_F32X_MUL GGML_F32x8_MUL + #define GGML_F32X_FMA GGML_F32x8_FMA + #define GLA_VECTOR_SIZE 8 + #elif defined(__AVX512F__) + #define GGML_F32X GGML_F32x16 + #define GGML_F32X_SET1 GGML_F32x16_SET1 + #define GGML_F32X_LOAD GGML_F32x16_LOAD + #define GGML_F32X_STORE GGML_F32x16_STORE + #define GGML_F32X_MUL GGML_F32x16_MUL + #define GGML_F32X_FMA GGML_F32x16_FMA + #define GLA_VECTOR_SIZE 16 + #elif defined(__ARM_NEON) && defined(__aarch64__) + #define GGML_F32X GGML_F32x4 + #define GGML_F32X_SET1 GGML_F32x4_SET1 + #define GGML_F32X_LOAD GGML_F32x4_LOAD + #define GGML_F32X_STORE GGML_F32x4_STORE + #define GGML_F32X_MUL GGML_F32x4_MUL + #define GGML_F32X_FMA GGML_F32x4_FMA + #define GLA_VECTOR_SIZE 4 + #endif + + #ifdef GLA_VECTOR_SIZE + const int64_t vec_count = head_size / GLA_VECTOR_SIZE; + + for (int64_t t = 0; t < T; t++) { + size_t t_offset = t * t_stride; + size_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[4]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + size_t h_offset = h * h_stride; + size_t t_h_offset = t_offset + h_offset; + size_t h_2d_offset = h * h_stride_2d; + + for (int64_t i = 0; i < head_size; i++) { + size_t t_h_i_offset = t_h_offset + i; + size_t h_2d_i_offset = h_2d_offset + i * h_stride; + + float k_val = k[t_h_i_offset]; + float q_val = q[t_h_i_offset] * scale; + float g_val = g[t_h_i_offset]; + + // Broadcast scalar values to vectors + GGML_F32X k_vec = GGML_F32X_SET1(k_val); + GGML_F32X q_vec = GGML_F32X_SET1(q_val); + GGML_F32X g_vec = GGML_F32X_SET1(g_val); + + for (int64_t j = 0; j < vec_count; j++) { + size_t base_j = j * GLA_VECTOR_SIZE; + size_t t_h_j_offset = t_h_offset + base_j; + size_t h_2d_i_j_offset = h_2d_i_offset + base_j; + + // Load x elements at once + GGML_F32X v_vec = GGML_F32X_LOAD(&v[t_h_j_offset]); + GGML_F32X prev_state_vec = GGML_F32X_LOAD(&state_prev[h_2d_i_j_offset]); + GGML_F32X dst_vec = GGML_F32X_LOAD(&dst_data[t_h_j_offset]); + + // Compute kv = v * k + GGML_F32X kv_vec = GGML_F32X_MUL(v_vec, k_vec); + + // Compute temp = prev_state * g + kv + GGML_F32X temp_vec = GGML_F32X_FMA(kv_vec, prev_state_vec, g_vec); + + // Update dst: dst += temp * q + dst_vec = GGML_F32X_FMA(dst_vec, temp_vec, q_vec); + GGML_F32X_STORE(&dst_data[t_h_j_offset], dst_vec); + + // Update state + GGML_F32X_STORE(&state_cur[h_2d_i_j_offset], temp_vec); + } + + // Handle remaining elements, this will not be used. + for (int64_t j = vec_count * GLA_VECTOR_SIZE; j < head_size; j++) { + size_t t_h_j_offset = t_h_offset + j; + size_t h_2d_i_j_offset = h_2d_i_offset + j; + float v_val = v[t_h_j_offset]; + float kv_val = v_val * k_val; + float prev_state_val = state_prev[h_2d_i_j_offset]; + float temp_val = kv_val + prev_state_val * g_val; + dst_data[t_h_j_offset] += temp_val * q_val; + state_cur[h_2d_i_j_offset] = temp_val; + } + } + } + } + + #else + for (int64_t t = 0; t < T; t++) { + size_t t_offset = t * t_stride; + size_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[4]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + size_t h_offset = h * h_stride; + size_t t_h_offset = t_offset + h_offset; + size_t h_2d_offset = h * h_stride_2d; + + for (int64_t i = 0; i < head_size; i++) { + size_t t_h_i_offset = t_h_offset + i; + size_t h_2d_i_offset = h_2d_offset + i * h_stride; + + float k_val = k[t_h_i_offset]; + float q_val = q[t_h_i_offset] * scale; + float g_val = g[t_h_i_offset]; + + for (int64_t j = 0; j < head_size; j++) { + size_t t_h_j_offset = t_h_offset + j; + size_t h_2d_i_j_offset = h_2d_i_offset + j; + + float v_val = v[t_h_j_offset]; + float kv_val = v_val * k_val; + float prev_state_val = state_prev[h_2d_i_j_offset]; + float temp_val = prev_state_val * g_val + kv_val; + dst_data[t_h_j_offset] += temp_val * q_val; + state_cur[h_2d_i_j_offset] = temp_val; + } + } + } + } + #endif +} + + +void ggml_compute_forward_gla( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_gla_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_rwkv_wkv7 + +static void ggml_compute_forward_rwkv_wkv7_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + const int64_t T = dst->src[1]->ne[2]; + const int64_t C = dst->ne[0]; + const int64_t HEADS = dst->src[1]->ne[1]; + const int64_t n_seqs = dst->src[6]->ne[1]; + const int64_t head_size = C / HEADS; + + float * dst_data = (float *) dst->data; + float * state = ((float *) dst->data) + C * T; + + const int ith = params->ith; + const int nth = params->nth; + + if (ith >= HEADS) { + return; + } + + const int h_start = (HEADS * ith) / nth; + const int h_end = ((HEADS * (ith + 1)) / nth < HEADS) ? + (HEADS * (ith + 1)) / nth : HEADS; + + float * r = (float *) dst->src[0]->data; + float * w = (float *) dst->src[1]->data; + float * k = (float *) dst->src[2]->data; + float * v = (float *) dst->src[3]->data; + float * a = (float *) dst->src[4]->data; + float * b = (float *) dst->src[5]->data; + + int64_t t_stride = HEADS * head_size; // Same to C + + int64_t h_stride = C / HEADS; + GGML_ASSERT(C % HEADS == 0); // C must be divisible by HEADS + int64_t h_stride_2d = head_size * head_size; + + #if defined(GGML_SIMD) + for (int64_t t = 0; t < T; t++) { + int64_t t_offset = t * t_stride; + int64_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[6]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + int64_t h_offset = h * h_stride; + int64_t t_h_offset = t_offset + h_offset; + int64_t h_2d_offset = h * h_stride_2d; + + for (int64_t ii = 0; ii < head_size; ii++) { + int64_t t_h_i_offset = t_h_offset + ii; + int64_t h_2d_i_offset = h_2d_offset + ii * h_stride; + + GGML_F32_VEC v_vec = GGML_F32_VEC_SET1(v[t_h_i_offset]); + + float sa = 0; + { + GGML_F32_VEC sum[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; + GGML_F32_VEC ax[GGML_F32_ARR]; + GGML_F32_VEC ay[GGML_F32_ARR]; + for (int64_t j = 0; j < head_size; j += GGML_F32_STEP) { + for (int64_t kk = 0; kk < GGML_F32_ARR; kk++) { + ax[kk] = GGML_F32_VEC_LOAD(&a[t_h_offset + j + kk * GGML_F32_EPR]); + ay[kk] = GGML_F32_VEC_LOAD(&state_prev[h_2d_i_offset + j + kk * GGML_F32_EPR]); + sum[kk] = GGML_F32_VEC_FMA(sum[kk], ax[kk], ay[kk]); + } + } + GGML_F32_VEC_REDUCE(sa, sum); + } + + GGML_F32_VEC sa_vec = GGML_F32_VEC_SET1(sa); + + int64_t j = 0; + GGML_F32_VEC result_vec[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; + for (; j < head_size; j += GGML_F32_STEP) { + for (int64_t kk = 0; kk < GGML_F32_ARR; kk++) { + int64_t t_h_j_offset = t_h_offset + j + kk * GGML_F32_EPR; + int64_t h_2d_i_j_offset = h_2d_i_offset + j + kk * GGML_F32_EPR; + + GGML_F32_VEC r_vec = GGML_F32_VEC_LOAD(&r[t_h_j_offset]); + GGML_F32_VEC w_vec = GGML_F32_VEC_LOAD(&w[t_h_j_offset]); + GGML_F32_VEC k_vec = GGML_F32_VEC_LOAD(&k[t_h_j_offset]); + GGML_F32_VEC b_vec = GGML_F32_VEC_LOAD(&b[t_h_j_offset]); + + k_vec = GGML_F32_VEC_MUL(v_vec, k_vec); + + GGML_F32_VEC state_vec = GGML_F32_VEC_LOAD(&state_prev[h_2d_i_j_offset]); + // kv + s * decay + sa * b + state_vec = GGML_F32_VEC_FMA(k_vec, state_vec, w_vec); + state_vec = GGML_F32_VEC_FMA(state_vec, sa_vec, b_vec); + GGML_F32_VEC_STORE(&state_cur[h_2d_i_j_offset], state_vec); + + result_vec[kk] = GGML_F32_VEC_FMA(result_vec[kk], state_vec, r_vec); + } + } + GGML_F32_VEC_REDUCE(dst_data[t_h_i_offset], result_vec); + + // There shouldn't be left-overs though. + for (; j < head_size; j++) { + int64_t t_h_j_offset = t_h_offset + j; + int64_t h_2d_i_j_offset = h_2d_i_offset + j; + + float r_val = r[t_h_j_offset]; + float w_val = w[t_h_j_offset]; + float k_val = k[t_h_j_offset]; + float b_val = b[t_h_j_offset]; + float kv_val = v[t_h_i_offset] * k_val; + + float prev_state_val = state_prev[h_2d_i_j_offset]; + state_cur[h_2d_i_j_offset] = prev_state_val * w_val + kv_val + sa * b_val; + dst_data[t_h_i_offset] += state_cur[h_2d_i_j_offset] * r_val; + } + } + } + } + #else + for (int64_t t = 0; t < T; t++) { + int64_t t_offset = t * t_stride; + int64_t state_offset = head_size * C * (t / (T / n_seqs)); + float * state_cur = state + state_offset; + float * state_prev = t % (T / n_seqs) ? state_cur : (float*)dst->src[6]->data + state_offset; + + for (int64_t h = h_start; h < h_end; h++) { + int64_t h_offset = h * h_stride; + int64_t t_h_offset = t_offset + h_offset; + int64_t h_2d_offset = h * h_stride_2d; + + for (int64_t i = 0; i < head_size; i++) { + int64_t t_h_i_offset = t_h_offset + i; + int64_t h_2d_i_offset = h_2d_offset + i * h_stride; + + float v_val = v[t_h_i_offset]; + + float sa = 0, result = 0; + for (int64_t j = 0; j < head_size; j++) { + sa += a[t_h_offset + j] * state_prev[h_2d_i_offset + j]; + } + + for (int64_t j = 0; j < head_size; j++) { + int64_t t_h_j_offset = t_h_offset + j; + int64_t h_2d_i_j_offset = h_2d_i_offset + j; + + float r_val = r[t_h_j_offset]; + float w_val = w[t_h_j_offset]; + float k_val = k[t_h_j_offset]; + float b_val = b[t_h_j_offset]; + float kv_val = v_val * k_val; + float prev_state_val = state_prev[h_2d_i_j_offset]; + state_cur[h_2d_i_j_offset] = prev_state_val * w_val + kv_val + sa * b_val; + result += state_cur[h_2d_i_j_offset] * r_val; + } + dst_data[t_h_i_offset] = result; + } + } + } + #endif +} + + +void ggml_compute_forward_rwkv_wkv7( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_rwkv_wkv7_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_map_unary + +static void ggml_compute_forward_map_unary_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_unary_op_f32_t fun) { + + const ggml_tensor * src0 = dst->src[0]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, dst)); + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + for (int i = 0; i < n; i++) { + fun(nc, + (float *) ((char *) dst->data + i*( dst->nb[1])), + (float *) ((char *) src0->data + i*(src0->nb[1]))); + } +} + +void ggml_compute_forward_map_unary( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_unary_op_f32_t fun) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_map_unary_f32(params, dst, fun); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_map_binary + +static void ggml_compute_forward_map_binary_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_binary_op_f32_t fun) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + if (params->ith != 0) { + return; + } + + assert(ggml_is_contiguous_1(src0)); + assert(ggml_is_contiguous_1(src1)); + assert(ggml_is_contiguous_1(dst)); + assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + + const int n = ggml_nrows(src0); + const int nc = src0->ne[0]; + + for (int i = 0; i < n; i++) { + fun(nc, + (float *) ((char *) dst->data + i*( dst->nb[1])), + (float *) ((char *) src0->data + i*(src0->nb[1])), + (float *) ((char *) src1->data + i*(src1->nb[1]))); + } +} + +void ggml_compute_forward_map_binary( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_binary_op_f32_t fun) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_map_binary_f32(params, dst, fun); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_map_custom1 + +void ggml_compute_forward_map_custom1_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_custom1_op_f32_t fun) { + + const ggml_tensor * a = dst->src[0]; + + if (params->ith != 0) { + return; + } + + fun(dst, a); +} + +// ggml_compute_forward_map_custom2 + +void ggml_compute_forward_map_custom2_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_custom2_op_f32_t fun) { + + const ggml_tensor * a = dst->src[0]; + const ggml_tensor * b = dst->src[1]; + + if (params->ith != 0) { + return; + } + + fun(dst, a, b); +} + +// ggml_compute_forward_map_custom3 + +void ggml_compute_forward_map_custom3_f32( + const ggml_compute_params * params, + ggml_tensor * dst, + const ggml_custom3_op_f32_t fun) { + + const ggml_tensor * a = dst->src[0]; + const ggml_tensor * b = dst->src[1]; + const ggml_tensor * c = dst->src[1]; + + if (params->ith != 0) { + return; + } + + fun(dst, a, b, c); +} + +// ggml_compute_forward_map_custom1 + +void ggml_compute_forward_map_custom1( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * a = dst->src[0]; + + struct ggml_map_custom1_op_params p; + memcpy(&p, dst->op_params, sizeof(p)); + + p.fun(dst, a, params->ith, params->nth, p.userdata); +} + +// ggml_compute_forward_map_custom2 + +void ggml_compute_forward_map_custom2( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * a = dst->src[0]; + const ggml_tensor * b = dst->src[1]; + + struct ggml_map_custom2_op_params p; + memcpy(&p, dst->op_params, sizeof(p)); + + p.fun(dst, a, b, params->ith, params->nth, p.userdata); +} + +// ggml_compute_forward_map_custom3 + +void ggml_compute_forward_map_custom3( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * a = dst->src[0]; + const ggml_tensor * b = dst->src[1]; + const ggml_tensor * c = dst->src[2]; + + struct ggml_map_custom3_op_params p; + memcpy(&p, dst->op_params, sizeof(p)); + + p.fun(dst, a, b, c, params->ith, params->nth, p.userdata); +} + +// ggml_compute_forward_cross_entropy_loss + +static void ggml_compute_forward_cross_entropy_loss_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src1 = dst->src[1]; + + GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT(src0->nb[0] == ggml_type_size(src0->type)); + GGML_ASSERT(src1->nb[0] == ggml_type_size(src1->type)); + GGML_ASSERT(ggml_are_same_shape(src0, src1)); + GGML_ASSERT(ggml_is_scalar(dst)); + GGML_ASSERT(dst->type == GGML_TYPE_F32); + + // TODO: handle transposed/permuted matrices + const int64_t nc = src0->ne[0]; + const int64_t nr = ggml_nrows(src0); + + const int ith = params->ith; + const int nth = params->nth; + + float * sums = (float *) params->wdata; + float * st = ((float *) params->wdata) + nth + ith*nc; + float sum_thread = 0.0f; + + GGML_ASSERT(params->wsize >= sizeof(float) * (nth + nth * nc)); + + // rows per thread + const int64_t dr = (nr + nth - 1)/nth; + + // row range for this thread + const int64_t ir0 = dr*ith; + const int64_t ir1 = MIN(ir0 + dr, nr); + + for (int64_t i1 = ir0; i1 < ir1; ++i1) { + const float * s0 = (const float *)((const char *) src0->data + i1*src0->nb[1]); + const float * s1 = (const float *)((const char *) src1->data + i1*src1->nb[1]); + +#ifndef NDEBUG + for (int64_t i = 0; i < nc; ++i) { + //printf("p[%d] = %f\n", i, p[i]); + assert(!isnan(s0[i])); + assert(!isnan(s1[i])); + } +#endif + + float max = -INFINITY; + ggml_vec_max_f32(nc, &max, s0); + const ggml_float sum_softmax = ggml_vec_log_soft_max_f32(nc, st, s0, max); + assert(sum_softmax >= 0.0); + + ggml_vec_add1_f32(nc, st, st, -sum_softmax); + ggml_vec_mul_f32(nc, st, st, s1); + + float sum_st = 0.0f; + ggml_vec_sum_f32(nc, &sum_st, st); + sum_thread += sum_st; + +#ifndef NDEBUG + for (int64_t i = 0; i < nc; ++i) { + assert(!isnan(st[i])); + assert(!isinf(st[i])); + } +#endif + } + sums[ith] = sum_thread; + ggml_barrier(params->threadpool); + + if (ith == 0) { + float * dp = (float *) dst->data; + ggml_vec_sum_f32(nth, dp, sums); + dp[0] *= -1.0f / (float) nr; + } +} + +void ggml_compute_forward_cross_entropy_loss( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_cross_entropy_loss_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +// ggml_compute_forward_cross_entropy_loss_back + +static void ggml_compute_forward_cross_entropy_loss_back_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * grad = dst->src[0]; // gradient of forward pass output + const ggml_tensor * src0f = dst->src[1]; // src0 of forward pass + const ggml_tensor * src1f = dst->src[2]; // src1 of forward pass + + GGML_ASSERT(ggml_is_contiguous(dst)); + GGML_ASSERT(ggml_is_contiguous(src0f)); + GGML_ASSERT(ggml_is_contiguous(src1f)); + GGML_ASSERT(ggml_is_contiguous(grad)); + GGML_ASSERT(ggml_are_same_shape(src0f, src1f) && ggml_are_same_shape(src0f, dst)); + + const int64_t ith = params->ith; + const int64_t nth = params->nth; + + // TODO: handle transposed/permuted matrices + const int64_t nc = src0f->ne[0]; + const int64_t nr = ggml_nrows(src0f); + + // rows per thread + const int64_t dr = (nr + nth - 1)/nth; + + // row range for this thread + const int64_t ir0 = dr*ith; + const int64_t ir1 = MIN(ir0 + dr, nr); + + const float d_by_nr = ((const float *) grad->data)[0] / (float) nr; + + for (int64_t i1 = ir0; i1 < ir1; i1++) { + float * ds0 = (float *)((char *) dst->data + i1*dst->nb[1]); + const float * s0 = (const float *)((const char *) src0f->data + i1*src0f->nb[1]); + const float * s1 = (const float *)((const char *) src1f->data + i1*src1f->nb[1]); + +#ifndef NDEBUG + for (int64_t i = 0; i < nc; ++i) { + //printf("p[%d] = %f\n", i, p[i]); + assert(!isnan(s0[i])); + assert(!isnan(s1[i])); + } +#endif + + // soft_max + float max = -INFINITY; + ggml_vec_max_f32(nc, &max, s0); + const ggml_float sum = ggml_vec_soft_max_f32(nc, ds0, s0, max); + assert(sum > 0.0); + ggml_vec_scale_f32(nc, ds0, 1.0/sum); + + // grad(src0f) = (softmax(src0f) - src1f) * grad(cross_entropy_loss(src0f, src1f)) / nr + ggml_vec_sub_f32(nc, ds0, ds0, s1); + ggml_vec_scale_f32(nc, ds0, d_by_nr); + +#ifndef NDEBUG + for (int64_t i = 0; i < nc; ++i) { + assert(!isnan(ds0[i])); + assert(!isinf(ds0[i])); + } +#endif + } +} + +void ggml_compute_forward_cross_entropy_loss_back( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_cross_entropy_loss_back_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} + +static void ggml_compute_forward_opt_step_adamw_f32( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + const ggml_tensor * src0_grad = dst->src[1]; + const ggml_tensor * src0_grad_m = dst->src[2]; + const ggml_tensor * src0_grad_v = dst->src[3]; + const ggml_tensor * adamw_params = dst->src[4]; + + GGML_ASSERT(ggml_are_same_shape(src0, src0_grad)); + GGML_ASSERT(ggml_are_same_shape(src0, src0_grad_m)); + GGML_ASSERT(ggml_are_same_shape(src0, src0_grad_v)); + GGML_ASSERT(ggml_nelements(adamw_params) == 7); + + const int ith = params->ith; + const int nth = params->nth; + + const int nr = ggml_nrows(src0); + + GGML_TENSOR_UNARY_OP_LOCALS + GGML_ASSERT(nb00 == sizeof(float)); + + // rows per thread + const int dr = (nr + nth - 1)/nth; + + // row range for this thread + const int ir0 = dr*ith; + const int ir1 = MIN(ir0 + dr, nr); + + const float * adamw_params_ptr = ggml_get_data_f32(adamw_params); + const float alpha = adamw_params_ptr[0]; + const float beta1 = adamw_params_ptr[1]; + const float beta2 = adamw_params_ptr[2]; + const float eps = adamw_params_ptr[3]; + const float wd = adamw_params_ptr[4]; + const float beta1h = adamw_params_ptr[5]; + const float beta2h = adamw_params_ptr[6]; + + for (int ir = ir0; ir < ir1; ++ir) { + const int64_t i03 = ir/(ne02*ne01); + const int64_t i02 = (ir - i03*ne02*ne01)/ne01; + const int64_t i01 = (ir - i03*ne02*ne01 - i02*ne01); + + const size_t offset = i03*nb03 + i02*nb02 + i01*nb01; + + float * w = (float *) ((char *) src0->data + offset); // weight + const float * g = (const float *) ((const char *) src0_grad->data + offset); // grad + float * m = (float *) ((char *) src0_grad_m->data + offset); + float * v = (float *) ((char *) src0_grad_v->data + offset); + + for (int i00 = 0; i00 < ne00; ++i00) { + m[i00] = m[i00]*beta1 + g[i00]*(1.0f - beta1); + v[i00] = v[i00]*beta2 + g[i00]*g[i00]*(1.0f - beta2); + + const float mh = m[i00]*beta1h; + const float vh = sqrtf(v[i00]*beta2h) + eps; + + // The weight decay is applied independently of the Adam momenta m and v. + // This is NOT equivalent to l2 regularization that adds w[i00]*w[i00] to the loss. + // See: https://arxiv.org/pdf/1711.05101v3.pdf + w[i00] = w[i00]*(1.0f - alpha*wd) - alpha*mh/vh; + } + } +} + +void ggml_compute_forward_opt_step_adamw( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * src0 = dst->src[0]; + + switch (src0->type) { + case GGML_TYPE_F32: + { + ggml_compute_forward_opt_step_adamw_f32(params, dst); + } break; + default: + { + GGML_ABORT("fatal error"); + } + } +} diff --git a/ggml/src/ggml-cpu/ops.h b/ggml/src/ggml-cpu/ops.h new file mode 100644 index 0000000000000..d43fbc1fc472a --- /dev/null +++ b/ggml/src/ggml-cpu/ops.h @@ -0,0 +1,128 @@ +#pragma once + +#include "ggml.h" + +// +// cache line +// + +#if defined(__cpp_lib_hardware_interference_size) +#define CACHE_LINE_SIZE std::hardware_destructive_interference_size +#else +#if defined(__POWER9_VECTOR__) +#define CACHE_LINE_SIZE 128 +#elif defined(__VXE__) || defined(__VXE2__) +#define CACHE_LINE_SIZE 256 +#else +#define CACHE_LINE_SIZE 64 +#endif +#endif + +static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); + +#ifdef __cplusplus +extern "C" { +#endif + +void ggml_compute_forward_dup(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_add(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_add1(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_acc(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_sum(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_sum_rows(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_mean(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_argmax(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_count_equal(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_repeat(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_repeat_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_concat(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_silu_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_norm(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rms_norm(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rms_norm_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_group_norm(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_l2_norm(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_out_prod(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_scale(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_set(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_cpy(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_cont(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_reshape(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_view(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_permute(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_transpose(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_get_rows(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_get_rows_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_diag(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_diag_mask_inf(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_diag_mask_zero(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_soft_max(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_soft_max_ext_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rope(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rope_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_clamp(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_conv_transpose_1d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_im2col(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_im2col_back_f32(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_conv_transpose_2d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_pool_1d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_pool_2d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_pool_2d_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_upscale(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_pad(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_pad_reflect_1d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_arange(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_timestep_embedding(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_argsort(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_leaky_relu(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_flash_attn_ext( + const struct ggml_compute_params * params, + const struct ggml_tensor * q, + const struct ggml_tensor * k, + const struct ggml_tensor * v, + const struct ggml_tensor * mask, + struct ggml_tensor * dst); +void ggml_compute_forward_flash_attn_back( + const struct ggml_compute_params * params, + const bool masked, + struct ggml_tensor * dst); +void ggml_compute_forward_ssm_conv(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_ssm_scan(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_win_part(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_win_unpart(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_unary(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_get_rel_pos(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_add_rel_pos(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rwkv_wkv6(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_rwkv_wkv7(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_gla(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_map_unary( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const ggml_unary_op_f32_t fun); +void ggml_compute_forward_map_binary( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const ggml_binary_op_f32_t fun); +void ggml_compute_forward_map_custom1_f32( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const ggml_custom1_op_f32_t fun); +void ggml_compute_forward_map_custom2_f32( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const ggml_custom2_op_f32_t fun); +void ggml_compute_forward_map_custom3_f32( + const struct ggml_compute_params * params, + struct ggml_tensor * dst, + const ggml_custom3_op_f32_t fun); +void ggml_compute_forward_map_custom1(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_map_custom2(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_map_custom3(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_cross_entropy_loss(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_cross_entropy_loss_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_opt_step_adamw(const struct ggml_compute_params * params, struct ggml_tensor * dst); + +#ifdef __cplusplus +} +#endif diff --git a/ggml/src/ggml-cpu/simd-mappings.h b/ggml/src/ggml-cpu/simd-mappings.h new file mode 100644 index 0000000000000..28aaa1b7189c7 --- /dev/null +++ b/ggml/src/ggml-cpu/simd-mappings.h @@ -0,0 +1,884 @@ +#pragma once + +#include "ggml-cpu-impl.h" + +// +// simd mappings +// + +// we define a common set of C macros which map to specific intrinsics based on the current architecture +// we then implement the fundamental computation operations below using only these macros +// adding support for new architectures requires to define the corresponding SIMD macros +// +// GGML_F32_STEP / GGML_F16_STEP +// number of elements to process in a single step +// +// GGML_F32_EPR / GGML_F16_EPR +// number of elements to fit in a single register +// + +#if defined(__ARM_NEON) && defined(__ARM_FEATURE_FMA) + +#define GGML_SIMD + +// F32 NEON + +#define GGML_F32_STEP 16 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 float32x4_t +#define GGML_F32x4_ZERO vdupq_n_f32(0.0f) +#define GGML_F32x4_SET1(x) vdupq_n_f32(x) +#define GGML_F32x4_LOAD vld1q_f32 +#define GGML_F32x4_STORE vst1q_f32 +#define GGML_F32x4_FMA(a, b, c) vfmaq_f32(a, b, c) +#define GGML_F32x4_ADD vaddq_f32 +#define GGML_F32x4_MUL vmulq_f32 +#define GGML_F32x4_REDUCE_ONE(x) vaddvq_f32(x) +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f32((x)[i], (x)[offset+i]); \ + } \ + (res) = (ggml_float) GGML_F32x4_REDUCE_ONE((x)[0]); \ +} + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 NEON + +#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) + #define GGML_F16_STEP 32 + #define GGML_F16_EPR 8 + + #define GGML_F16x8 float16x8_t + #define GGML_F16x8_ZERO vdupq_n_f16(0.0f) + #define GGML_F16x8_SET1(x) vdupq_n_f16(x) + #define GGML_F16x8_LOAD(x) vld1q_f16((const ggml_fp16_internal_t *)(x)) + #define GGML_F16x8_STORE vst1q_f16 + #define GGML_F16x8_FMA(a, b, c) vfmaq_f16(a, b, c) + #define GGML_F16x8_ADD vaddq_f16 + #define GGML_F16x8_MUL vmulq_f16 + #define GGML_F16x8_REDUCE(res, x) \ + do { \ + int offset = GGML_F16_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + (x)[i] = vaddq_f16((x)[i], (x)[offset+i]); \ + } \ + const float32x4_t t0 = vcvt_f32_f16(vget_low_f16 ((x)[0])); \ + const float32x4_t t1 = vcvt_f32_f16(vget_high_f16((x)[0])); \ + (res) = (ggml_float) vaddvq_f32(vaddq_f32(t0, t1)); \ + } while (0) + + #define GGML_F16_VEC GGML_F16x8 + #define GGML_F16_VEC_ZERO GGML_F16x8_ZERO + #define GGML_F16_VEC_SET1 GGML_F16x8_SET1 + #define GGML_F16_VEC_LOAD(p, i) GGML_F16x8_LOAD(p) + #define GGML_F16_VEC_STORE(p, r, i) GGML_F16x8_STORE((ggml_fp16_internal_t *)(p), (r)[i]) + #define GGML_F16_VEC_FMA GGML_F16x8_FMA + #define GGML_F16_VEC_ADD GGML_F16x8_ADD + #define GGML_F16_VEC_MUL GGML_F16x8_MUL + #define GGML_F16_VEC_REDUCE GGML_F16x8_REDUCE +#else + // if FP16 vector arithmetic is not supported, we use FP32 instead + // and take advantage of the vcvt_ functions to convert to/from FP16 + + #define GGML_F16_STEP 16 + #define GGML_F16_EPR 4 + + #define GGML_F32Cx4 float32x4_t + #define GGML_F32Cx4_ZERO vdupq_n_f32(0.0f) + #define GGML_F32Cx4_SET1(x) vdupq_n_f32(x) + #define GGML_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16((const ggml_fp16_internal_t *)(x))) + #define GGML_F32Cx4_STORE(x, y) vst1_f16(x, vcvt_f16_f32(y)) + #define GGML_F32Cx4_FMA(a, b, c) vfmaq_f32(a, b, c) + #define GGML_F32Cx4_ADD vaddq_f32 + #define GGML_F32Cx4_MUL vmulq_f32 + #define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE + + #define GGML_F16_VEC GGML_F32Cx4 + #define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO + #define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 + #define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) + #define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE((ggml_fp16_internal_t *)(p), r[i]) + #define GGML_F16_VEC_FMA GGML_F32Cx4_FMA + #define GGML_F16_VEC_ADD GGML_F32Cx4_ADD + #define GGML_F16_VEC_MUL GGML_F32Cx4_MUL + #define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE +#endif + +#elif defined(__AVX512F__) + +#define GGML_SIMD + +// F32 AVX512 + +#define GGML_F32_STEP 64 +#define GGML_F32_EPR 16 + +#define GGML_F32x16 __m512 +#define GGML_F32x16_ZERO _mm512_setzero_ps() +#define GGML_F32x16_SET1(x) _mm512_set1_ps(x) +#define GGML_F32x16_LOAD _mm512_loadu_ps +#define GGML_F32x16_STORE _mm512_storeu_ps +// _mm512_fmadd_ps is defined in AVX512F so no guard is required +#define GGML_F32x16_FMA(a, b, c) _mm512_fmadd_ps(b, c, a) +#define GGML_F32x16_ADD _mm512_add_ps +#define GGML_F32x16_MUL _mm512_mul_ps +#define GGML_F32x16_REDUCE(res, x) \ +do { \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + res = (ggml_float) _mm512_reduce_add_ps(x[0]); \ +} while (0) + +// TODO: is this optimal ? + +#define GGML_F32_VEC GGML_F32x16 +#define GGML_F32_VEC_ZERO GGML_F32x16_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x16_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x16_LOAD +#define GGML_F32_VEC_STORE GGML_F32x16_STORE +#define GGML_F32_VEC_FMA GGML_F32x16_FMA +#define GGML_F32_VEC_ADD GGML_F32x16_ADD +#define GGML_F32_VEC_MUL GGML_F32x16_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x16_REDUCE + +// F16 AVX512 + +// F16 AVX + +#define GGML_F16_STEP 64 +#define GGML_F16_EPR 16 + +// AVX512 has FP16 extension (AVX512_FP16) but I don't have it on my machine so I use FP32 instead + +#define GGML_F32Cx16 __m512 +#define GGML_F32Cx16_ZERO _mm512_setzero_ps() +#define GGML_F32Cx16_SET1(x) _mm512_set1_ps(x) + +// unlike _mm256_cvt intrinsics that require F16C, _mm512_cvt is defined in AVX512F +// so F16C guard isn't required +#define GGML_F32Cx16_LOAD(x) _mm512_cvtph_ps(_mm256_loadu_si256((const __m256i *)(x))) +#define GGML_F32Cx16_STORE(x, y) _mm256_storeu_si256((__m256i *)(x), _mm512_cvtps_ph(y, 0)) + +#define GGML_F32Cx16_FMA(a, b, c) _mm512_fmadd_ps(b, c, a) +#define GGML_F32Cx16_ADD _mm512_add_ps +#define GGML_F32Cx16_MUL _mm512_mul_ps +#define GGML_F32Cx16_REDUCE(res, x) \ +do { \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm512_add_ps(x[i], x[offset+i]); \ + } \ + res = (ggml_float) _mm512_reduce_add_ps(x[0]); \ +} while (0) + +#define GGML_F16_VEC GGML_F32Cx16 +#define GGML_F16_VEC_ZERO GGML_F32Cx16_ZERO +#define GGML_F16_VEC_SET1 GGML_F32Cx16_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx16_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx16_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32Cx16_FMA +#define GGML_F16_VEC_ADD GGML_F32Cx16_ADD +#define GGML_F16_VEC_MUL GGML_F32Cx16_MUL + +#define GGML_F16_VEC_REDUCE GGML_F32Cx16_REDUCE +#elif defined(__AVX__) + +#define GGML_SIMD + +// F32 AVX + +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 8 + +#define GGML_F32x8 __m256 +#define GGML_F32x8_ZERO _mm256_setzero_ps() +#define GGML_F32x8_SET1(x) _mm256_set1_ps(x) +#define GGML_F32x8_LOAD _mm256_loadu_ps +#define GGML_F32x8_STORE _mm256_storeu_ps +#if defined(__FMA__) + #define GGML_F32x8_FMA(a, b, c) _mm256_fmadd_ps(b, c, a) +#else + #define GGML_F32x8_FMA(a, b, c) _mm256_add_ps(_mm256_mul_ps(b, c), a) +#endif +#define GGML_F32x8_ADD _mm256_add_ps +#define GGML_F32x8_MUL _mm256_mul_ps +#define GGML_F32x8_REDUCE(res, x) \ +do { \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm256_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm256_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm256_add_ps(x[i], x[offset+i]); \ + } \ + const __m128 t0 = _mm_add_ps(_mm256_castps256_ps128(x[0]), \ + _mm256_extractf128_ps(x[0], 1)); \ + const __m128 t1 = _mm_hadd_ps(t0, t0); \ + res = (ggml_float) _mm_cvtss_f32(_mm_hadd_ps(t1, t1)); \ +} while (0) +// TODO: is this optimal ? + +#define GGML_F32_VEC GGML_F32x8 +#define GGML_F32_VEC_ZERO GGML_F32x8_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x8_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x8_LOAD +#define GGML_F32_VEC_STORE GGML_F32x8_STORE +#define GGML_F32_VEC_FMA GGML_F32x8_FMA +#define GGML_F32_VEC_ADD GGML_F32x8_ADD +#define GGML_F32_VEC_MUL GGML_F32x8_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x8_REDUCE + +// F16 AVX + +#define GGML_F16_STEP 32 +#define GGML_F16_EPR 8 + +// F16 arithmetic is not supported by AVX, so we use F32 instead + +#define GGML_F32Cx8 __m256 +#define GGML_F32Cx8_ZERO _mm256_setzero_ps() +#define GGML_F32Cx8_SET1(x) _mm256_set1_ps(x) + +#if defined(__F16C__) +// the _mm256_cvt intrinsics require F16C +#define GGML_F32Cx8_LOAD(x) _mm256_cvtph_ps(_mm_loadu_si128((const __m128i *)(x))) +#define GGML_F32Cx8_STORE(x, y) _mm_storeu_si128((__m128i *)(x), _mm256_cvtps_ph(y, 0)) +#else +static inline __m256 __avx_f32cx8_load(const ggml_fp16_t * x) { + float tmp[8]; + + for (int i = 0; i < 8; i++) { + tmp[i] = GGML_FP16_TO_FP32(x[i]); + } + + return _mm256_loadu_ps(tmp); +} +static inline void __avx_f32cx8_store(ggml_fp16_t *x, __m256 y) { + float arr[8]; + + _mm256_storeu_ps(arr, y); + + for (int i = 0; i < 8; i++) + x[i] = GGML_FP32_TO_FP16(arr[i]); +} +#define GGML_F32Cx8_LOAD(x) __avx_f32cx8_load(x) +#define GGML_F32Cx8_STORE(x, y) __avx_f32cx8_store(x, y) +#endif + +#define GGML_F32Cx8_FMA GGML_F32x8_FMA +#define GGML_F32Cx8_ADD _mm256_add_ps +#define GGML_F32Cx8_MUL _mm256_mul_ps +#define GGML_F32Cx8_REDUCE GGML_F32x8_REDUCE + +#define GGML_F16_VEC GGML_F32Cx8 +#define GGML_F16_VEC_ZERO GGML_F32Cx8_ZERO +#define GGML_F16_VEC_SET1 GGML_F32Cx8_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx8_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx8_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32Cx8_FMA +#define GGML_F16_VEC_ADD GGML_F32Cx8_ADD +#define GGML_F16_VEC_MUL GGML_F32Cx8_MUL +#define GGML_F16_VEC_REDUCE GGML_F32Cx8_REDUCE + +#elif defined(__POWER9_VECTOR__) + +#define GGML_SIMD + +// F32 POWER9 + +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 vector float +#define GGML_F32x4_ZERO 0.0f +#define GGML_F32x4_SET1 vec_splats +#define GGML_F32x4_LOAD(p) vec_xl(0, p) +#define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) +#define GGML_F32x4_FMA(a, b, c) vec_madd(b, c, a) +#define GGML_F32x4_ADD vec_add +#define GGML_F32x4_MUL vec_mul +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset+i]); \ + } \ + res = vec_extract(x[0], 0) + \ + vec_extract(x[0], 1) + \ + vec_extract(x[0], 2) + \ + vec_extract(x[0], 3); \ +} + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 POWER9 +#define GGML_F16_STEP GGML_F32_STEP +#define GGML_F16_EPR GGML_F32_EPR +#define GGML_F16_VEC GGML_F32x4 +#define GGML_F16_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F16_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F16_VEC_FMA GGML_F32x4_FMA +#define GGML_F16_VEC_ADD GGML_F32x4_ADD +#define GGML_F16_VEC_MUL GGML_F32x4_MUL +#define GGML_F16_VEC_REDUCE GGML_F32x4_REDUCE +// Use vec_xl, not vec_ld, in case the load address is not aligned. +#define GGML_F16_VEC_LOAD(p, i) (i & 0x1) ? \ + vec_extract_fp32_from_shorth(vec_xl(0, p - GGML_F16_EPR)) : \ + vec_extract_fp32_from_shortl(vec_xl(0, p)) +#define GGML_ENDIAN_BYTE(i) ((unsigned char *)&(uint16_t){1})[i] +#define GGML_F16_VEC_STORE(p, r, i) \ + if (i & 0x1) \ + vec_xst(vec_pack_to_short_fp32(r[i - GGML_ENDIAN_BYTE(1)], \ + r[i - GGML_ENDIAN_BYTE(0)]), \ + 0, p - GGML_F16_EPR) + +#elif defined(__wasm_simd128__) + +#define GGML_SIMD + +// F32 WASM + +#define GGML_F32_STEP 16 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 v128_t +#define GGML_F32x4_ZERO wasm_f32x4_splat(0.0f) +#define GGML_F32x4_SET1(x) wasm_f32x4_splat(x) +#define GGML_F32x4_LOAD wasm_v128_load +#define GGML_F32x4_STORE wasm_v128_store +#define GGML_F32x4_FMA(a, b, c) wasm_f32x4_add(wasm_f32x4_mul(b, c), a) +#define GGML_F32x4_ADD wasm_f32x4_add +#define GGML_F32x4_MUL wasm_f32x4_mul +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + res = wasm_f32x4_extract_lane(x[0], 0) + \ + wasm_f32x4_extract_lane(x[0], 1) + \ + wasm_f32x4_extract_lane(x[0], 2) + \ + wasm_f32x4_extract_lane(x[0], 3); \ +} + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 WASM + +#define GGML_F16_STEP 16 +#define GGML_F16_EPR 4 + +inline static v128_t __wasm_f16x4_load(const ggml_fp16_t * p) { + float tmp[4]; + + tmp[0] = GGML_FP16_TO_FP32(p[0]); + tmp[1] = GGML_FP16_TO_FP32(p[1]); + tmp[2] = GGML_FP16_TO_FP32(p[2]); + tmp[3] = GGML_FP16_TO_FP32(p[3]); + + return wasm_v128_load(tmp); +} + +inline static void __wasm_f16x4_store(ggml_fp16_t * p, v128_t x) { + float tmp[4]; + + wasm_v128_store(tmp, x); + + p[0] = GGML_FP32_TO_FP16(tmp[0]); + p[1] = GGML_FP32_TO_FP16(tmp[1]); + p[2] = GGML_FP32_TO_FP16(tmp[2]); + p[3] = GGML_FP32_TO_FP16(tmp[3]); +} + +#define GGML_F16x4 v128_t +#define GGML_F16x4_ZERO wasm_f32x4_splat(0.0f) +#define GGML_F16x4_SET1(x) wasm_f32x4_splat(x) +#define GGML_F16x4_LOAD(x) __wasm_f16x4_load(x) +#define GGML_F16x4_STORE(x, y) __wasm_f16x4_store(x, y) +#define GGML_F16x4_FMA GGML_F32x4_FMA +#define GGML_F16x4_ADD wasm_f32x4_add +#define GGML_F16x4_MUL wasm_f32x4_mul +#define GGML_F16x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F16_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = wasm_f32x4_add(x[i], x[offset+i]); \ + } \ + res = (ggml_float) (wasm_f32x4_extract_lane(x[0], 0) + \ + wasm_f32x4_extract_lane(x[0], 1) + \ + wasm_f32x4_extract_lane(x[0], 2) + \ + wasm_f32x4_extract_lane(x[0], 3)); \ +} + +#define GGML_F16_VEC GGML_F16x4 +#define GGML_F16_VEC_ZERO GGML_F16x4_ZERO +#define GGML_F16_VEC_SET1 GGML_F16x4_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F16x4_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F16x4_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F16x4_FMA +#define GGML_F16_VEC_ADD GGML_F16x4_ADD +#define GGML_F16_VEC_MUL GGML_F16x4_MUL +#define GGML_F16_VEC_REDUCE GGML_F16x4_REDUCE + +#elif defined(__SSE3__) + +#define GGML_SIMD + +// F32 SSE + +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 __m128 +#define GGML_F32x4_ZERO _mm_setzero_ps() +#define GGML_F32x4_SET1(x) _mm_set1_ps(x) +#define GGML_F32x4_LOAD _mm_loadu_ps +#define GGML_F32x4_STORE _mm_storeu_ps +#if defined(__FMA__) + // TODO: Does this work? + #define GGML_F32x4_FMA(a, b, c) _mm_fmadd_ps(b, c, a) +#else + #define GGML_F32x4_FMA(a, b, c) _mm_add_ps(_mm_mul_ps(b, c), a) +#endif +#define GGML_F32x4_ADD _mm_add_ps +#define GGML_F32x4_MUL _mm_mul_ps +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm_add_ps(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = _mm_add_ps(x[i], x[offset+i]); \ + } \ + const __m128 t0 = _mm_hadd_ps(x[0], x[0]); \ + res = (ggml_float) _mm_cvtss_f32(_mm_hadd_ps(t0, t0)); \ +} +// TODO: is this optimal ? + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 SSE + +#define GGML_F16_STEP 32 +#define GGML_F16_EPR 4 + +static inline __m128 __sse_f16x4_load(const ggml_fp16_t * x) { + float tmp[4]; + + tmp[0] = GGML_FP16_TO_FP32(x[0]); + tmp[1] = GGML_FP16_TO_FP32(x[1]); + tmp[2] = GGML_FP16_TO_FP32(x[2]); + tmp[3] = GGML_FP16_TO_FP32(x[3]); + + return _mm_loadu_ps(tmp); +} + +static inline void __sse_f16x4_store(ggml_fp16_t * x, __m128 y) { + float arr[4]; + + _mm_storeu_ps(arr, y); + + x[0] = GGML_FP32_TO_FP16(arr[0]); + x[1] = GGML_FP32_TO_FP16(arr[1]); + x[2] = GGML_FP32_TO_FP16(arr[2]); + x[3] = GGML_FP32_TO_FP16(arr[3]); +} + +#define GGML_F32Cx4 __m128 +#define GGML_F32Cx4_ZERO _mm_setzero_ps() +#define GGML_F32Cx4_SET1(x) _mm_set1_ps(x) +#define GGML_F32Cx4_LOAD(x) __sse_f16x4_load(x) +#define GGML_F32Cx4_STORE(x, y) __sse_f16x4_store(x, y) +#define GGML_F32Cx4_FMA GGML_F32x4_FMA +#define GGML_F32Cx4_ADD _mm_add_ps +#define GGML_F32Cx4_MUL _mm_mul_ps +#define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE + +#define GGML_F16_VEC GGML_F32Cx4 +#define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO +#define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32Cx4_FMA +#define GGML_F16_VEC_ADD GGML_F32Cx4_ADD +#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL +#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE + +#elif defined(__loongarch_asx) + +#define GGML_SIMD + +// F32 LASX +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 8 + +#define GGML_F32x8 __m256 +#define GGML_F32x8_ZERO (__m256)__lasx_xvldi(0) +#define GGML_F32x8_SET1(x) (__m256)__lasx_xvreplfr2vr_s((x)) +#define GGML_F32x8_LOAD(x) (__m256)__lasx_xvld((x), 0) +#define GGML_F32x8_STORE(x,y) __lasx_xvst((y), (x), 0) +#define GGML_F32x8_FMA(a, b, c) __lasx_xvfmadd_s(b, c, a) +#define GGML_F32x8_ADD __lasx_xvfadd_s +#define GGML_F32x8_MUL __lasx_xvfmul_s +#define GGML_F32x8_REDUCE(res, x) \ +do { \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lasx_xvfadd_s(x[i], x[offset+i]); \ + } \ + float *tmp_p = (float *)&x[0]; \ + res = tmp_p[0] + tmp_p[1] + tmp_p[2] + tmp_p[3] + tmp_p[4] + tmp_p[5] + tmp_p[6] + tmp_p[7]; \ +} while (0) +// TODO: is this optimal ? + +#define GGML_F32_VEC GGML_F32x8 +#define GGML_F32_VEC_ZERO GGML_F32x8_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x8_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x8_LOAD +#define GGML_F32_VEC_STORE GGML_F32x8_STORE +#define GGML_F32_VEC_FMA GGML_F32x8_FMA +#define GGML_F32_VEC_ADD GGML_F32x8_ADD +#define GGML_F32_VEC_MUL GGML_F32x8_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x8_REDUCE + +// F16 LASX + +#define GGML_F16_STEP 32 +#define GGML_F16_EPR 8 + +// F16 arithmetic is not supported by LASX, so we use F32 instead + +#define GGML_F32Cx8 __m256 +#define GGML_F32Cx8_ZERO (__m256)__lasx_xvldi(0) +#define GGML_F32Cx8_SET1(x) (__m256)__lasx_xvreplgr2vr_w((x)) + +static inline __m256 __lasx_f32cx8_load(const ggml_fp16_t * x) { + __m256i a; + memcpy(&a, x, sizeof(ggml_fp16_t) * 8); + a = __lasx_xvpermi_d(a, 0 | (1 << 4)); + return __lasx_xvfcvtl_s_h(a); +} + +static inline void __lasx_f32cx8_store(ggml_fp16_t * x, __m256 y) { + __m256i a = __lasx_xvfcvt_h_s(y, y); + a = __lasx_xvpermi_d(a, 0 | (2 << 2)); + memcpy(x, &a, sizeof(ggml_fp16_t) * 8); +} +#define GGML_F32Cx8_LOAD(x) __lasx_f32cx8_load(x) +#define GGML_F32Cx8_STORE(x, y) __lasx_f32cx8_store(x, y) + +#define GGML_F32Cx8_FMA GGML_F32x8_FMA +#define GGML_F32Cx8_ADD __lasx_xvfadd_s +#define GGML_F32Cx8_MUL __lasx_xvfmul_s +#define GGML_F32Cx8_REDUCE GGML_F32x8_REDUCE + +#define GGML_F16_VEC GGML_F32Cx8 +#define GGML_F16_VEC_ZERO GGML_F32Cx8_ZERO +#define GGML_F16_VEC_SET1 GGML_F32Cx8_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx8_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx8_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32Cx8_FMA +#define GGML_F16_VEC_ADD GGML_F32Cx8_ADD +#define GGML_F16_VEC_MUL GGML_F32Cx8_MUL +#define GGML_F16_VEC_REDUCE GGML_F32Cx8_REDUCE + +#elif defined(__loongarch_sx) + +#define GGML_SIMD + +// F32 LSX + +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 __m128 +#define GGML_F32x4_ZERO __lsx_vldi(0) +#define GGML_F32x4_SET1(x) __lsx_vinsgr2vr_w(__lsx_vldi(0),(x), 0) +#define GGML_F32x4_LOAD(x) __lsx_vld((x), 0) +#define GGML_F32x4_STORE((x),(y)) __lsx_vst((y), (x), 0) +#define GGML_F32x4_FMA(a, b, c) __lsx_vfmadd_s(b, c, a) +#define GGML_F32x4_ADD __lsx_vfadd_s +#define GGML_F32x4_MUL __lsx_vfmul_s +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = __lsx_vfadd_s(x[i], x[offset + i]); \ + } \ + __m128i tmp = __lsx_vsrli_d((__m128i) x[0], 32); \ + tmp = (__m128i) __lsx_vfadd_s((__m128) tmp, x[0]); \ + tmp = __lsx_vpickev_w(__lsx_vldi(0), tmp); \ + const __m128 t0 = __lsx_vshuf4i_w(tmp, 0x88); \ + tmp = __lsx_vsrli_d((__m128i) t0, 32); \ + tmp = (__m128i) __lsx_vfadd_s((__m128) tmp, t0); \ + tmp = __lsx_vpickev_w(__lsx_vldi(0), tmp); \ + res = (ggml_float) __lsx_vpickve2gr_w(__lsx_vshuf4i_w(tmp, 0x88), 0); \ +} + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 LSX + +#define GGML_F16_STEP 32 +#define GGML_F16_EPR 4 + +static inline __m128 __lsx_f16x4_load(const ggml_fp16_t * x) { + float tmp[4]; + + tmp[0] = GGML_FP16_TO_FP32(x[0]); + tmp[1] = GGML_FP16_TO_FP32(x[1]); + tmp[2] = GGML_FP16_TO_FP32(x[2]); + tmp[3] = GGML_FP16_TO_FP32(x[3]); + + return __lsx_vld(tmp, 0); +} + +static inline void __lsx_f16x4_store(ggml_fp16_t * x, __m128 y) { + float arr[4]; + + __lsx_vst(y, arr, 0); + + x[0] = GGML_FP32_TO_FP16(arr[0]); + x[1] = GGML_FP32_TO_FP16(arr[1]); + x[2] = GGML_FP32_TO_FP16(arr[2]); + x[3] = GGML_FP32_TO_FP16(arr[3]); +} + +#define GGML_F32Cx4 __m128 +#define GGML_F32Cx4_ZERO __lsx_vldi(0) +#define GGML_F32Cx4_SET1(x) __lsx_vinsgr2vr_w(__lsx_vldi(0),(x), 0) +#define GGML_F32Cx4_LOAD(x) __lsx_f16x4_load(x) +#define GGML_F32Cx4_STORE(x, y) __lsx_f16x4_store(x, y) +#define GGML_F32Cx4_FMA GGML_F32x4_FMA +#define GGML_F32Cx4_ADD __lsx_vfadd_s +#define GGML_F32Cx4_MUL __lsx_vfmul_s +#define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE + +#define GGML_F16_VEC GGML_F32Cx4 +#define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO +#define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 +#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) +#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32Cx4_FMA +#define GGML_F16_VEC_ADD GGML_F32Cx4_ADD +#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL +#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE + +#elif defined(__VXE__) || defined(__VXE2__) + +#define GGML_SIMD + +// F32 s390x + +#define GGML_F32_STEP 32 +#define GGML_F32_EPR 4 + +#define GGML_F32x4 __vector float +#define GGML_F32x4_ZERO vec_splats(0.0f) +#define GGML_F32x4_SET1 vec_splats +#define GGML_F32x4_LOAD(p) vec_xl(0, p) +#define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) +#define GGML_F32x4_FMA(a, b, c) vec_madd(b, c, a) +#define GGML_F32x4_ADD vec_add +#define GGML_F32x4_MUL vec_mul +#define GGML_F32x4_REDUCE(res, x) \ +{ \ + int offset = GGML_F32_ARR >> 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset + i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset + i]); \ + } \ + offset >>= 1; \ + for (int i = 0; i < offset; ++i) { \ + x[i] = vec_add(x[i], x[offset + i]); \ + } \ + res = vec_extract(x[0], 0) + \ + vec_extract(x[0], 1) + \ + vec_extract(x[0], 2) + \ + vec_extract(x[0], 3); \ +} + +#define GGML_F32_VEC GGML_F32x4 +#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD +#define GGML_F32_VEC_STORE GGML_F32x4_STORE +#define GGML_F32_VEC_FMA GGML_F32x4_FMA +#define GGML_F32_VEC_ADD GGML_F32x4_ADD +#define GGML_F32_VEC_MUL GGML_F32x4_MUL +#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE + +// F16 s390x +#define GGML_F16_STEP GGML_F32_STEP +#define GGML_F16_EPR GGML_F32_EPR + +static inline __vector float __lzs_f16cx4_load(const ggml_fp16_t * x) { + float tmp[4]; + + for (int i = 0; i < 4; i++) { + tmp[i] = GGML_FP16_TO_FP32(x[i]); + } + + return vec_xl(0, tmp); +} + +static inline void __lzs_f16cx4_store(ggml_fp16_t * x, __vector float y) { + float arr[4]; + + vec_xst(y, 0, arr); + + for (int i = 0; i < 4; i++) { + x[i] = GGML_FP32_TO_FP16(arr[i]); + } +} + +#define GGML_F16_VEC GGML_F32x4 +#define GGML_F16_VEC_ZERO GGML_F32x4_ZERO +#define GGML_F16_VEC_SET1 GGML_F32x4_SET1 +#define GGML_F16_VEC_LOAD(p, i) __lzs_f16cx4_load(p) +#define GGML_F16_VEC_STORE(p, r, i) __lzs_f16cx4_store(p, r[i]) +#define GGML_F16_VEC_FMA GGML_F32x4_FMA +#define GGML_F16_VEC_ADD GGML_F32x4_ADD +#define GGML_F16_VEC_MUL GGML_F32x4_MUL +#define GGML_F16_VEC_REDUCE GGML_F32x4_REDUCE + +#endif + +// GGML_F32_ARR / GGML_F16_ARR +// number of registers to use per step +#ifdef GGML_SIMD +#define GGML_F32_ARR (GGML_F32_STEP/GGML_F32_EPR) +#define GGML_F16_ARR (GGML_F16_STEP/GGML_F16_EPR) +#endif diff --git a/ggml/src/ggml-cpu/vec.cpp b/ggml/src/ggml-cpu/vec.cpp new file mode 100644 index 0000000000000..dfe2218e309c4 --- /dev/null +++ b/ggml/src/ggml-cpu/vec.cpp @@ -0,0 +1,258 @@ +#include "vec.h" + +#include + +#if defined(_MSC_VER) +// disable "possible loss of data" to avoid hundreds of casts +// we should just be careful :) +#pragma warning(disable: 4244 4267) +#endif + +// precomputed gelu table for f16 (128 KB) +ggml_fp16_t ggml_table_gelu_f16[1 << 16]; + +// precomputed quick gelu table for f16 (128 KB) +ggml_fp16_t ggml_table_gelu_quick_f16[1 << 16]; + +void ggml_vec_dot_f32(int n, float * GGML_RESTRICT s, size_t bs, const float * GGML_RESTRICT x, size_t bx, const float * GGML_RESTRICT y, size_t by, int nrc) { + assert(nrc == 1); + GGML_UNUSED(nrc); + GGML_UNUSED(bx); + GGML_UNUSED(by); + GGML_UNUSED(bs); + +#if defined(GGML_SIMD) + float sumf = 0.0f; + const int np = (n & ~(GGML_F32_STEP - 1)); + + GGML_F32_VEC sum[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; + + GGML_F32_VEC ax[GGML_F32_ARR]; + GGML_F32_VEC ay[GGML_F32_ARR]; + + for (int i = 0; i < np; i += GGML_F32_STEP) { + for (int j = 0; j < GGML_F32_ARR; j++) { + ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); + ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + + sum[j] = GGML_F32_VEC_FMA(sum[j], ax[j], ay[j]); + } + } + + // reduce sum0..sum3 to sum0 + GGML_F32_VEC_REDUCE(sumf, sum); + + // leftovers + for (int i = np; i < n; ++i) { + sumf += x[i]*y[i]; + } +#else + // scalar + ggml_float sumf = 0.0; + for (int i = 0; i < n; ++i) { + sumf += (ggml_float)(x[i]*y[i]); + } +#endif + + *s = sumf; +} + +void ggml_vec_dot_bf16(int n, float * GGML_RESTRICT s, size_t bs, ggml_bf16_t * GGML_RESTRICT x, size_t bx, ggml_bf16_t * GGML_RESTRICT y, size_t by, int nrc) { + assert(nrc == 1); + GGML_UNUSED(nrc); + GGML_UNUSED(bx); + GGML_UNUSED(by); + GGML_UNUSED(bs); + int i = 0; + ggml_float sumf = 0; + +#if defined(__AVX512BF16__) + __m512 c1 = _mm512_setzero_ps(); + __m512 c2 = _mm512_setzero_ps(); + for (; i + 64 <= n; i += 64) { + c1 = _mm512_dpbf16_ps(c1, m512bh(_mm512_loadu_si512((x + i))), + m512bh(_mm512_loadu_si512((y + i)))); + c2 = _mm512_dpbf16_ps(c2, m512bh(_mm512_loadu_si512((x + i + 32))), + m512bh(_mm512_loadu_si512((y + i + 32)))); + } + sumf += (ggml_float)_mm512_reduce_add_ps(c1); + sumf += (ggml_float)_mm512_reduce_add_ps(c2); + +#elif defined(__AVX512F__) +#define LOAD(p) _mm512_castsi512_ps(_mm512_slli_epi32(_mm512_cvtepu16_epi32(_mm256_loadu_si256((const __m256i *)(p))), 16)) + __m512 c1 = _mm512_setzero_ps(); + __m512 c2 = _mm512_setzero_ps(); + for (; i + 32 <= n; i += 32) { + c1 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i), LOAD(y + i)), c1); + c2 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c2); + } + sumf += (ggml_float)_mm512_reduce_add_ps(c1); + sumf += (ggml_float)_mm512_reduce_add_ps(c2); + +#undef LOAD +#elif defined(__AVX2__) || defined(__AVX__) +#if defined(__AVX2__) +#define LOAD(p) _mm256_castsi256_ps(_mm256_slli_epi32(_mm256_cvtepu16_epi32(_mm_loadu_si128((const __m128i *)(p))), 16)) +#else +#define LOAD(p) _mm256_castsi256_ps(_mm256_insertf128_si256(_mm256_castsi128_si256(_mm_slli_epi32(_mm_cvtepu16_epi32(_mm_loadu_si128((const __m128i *)(p))), 16)), (_mm_slli_epi32(_mm_cvtepu16_epi32(_mm_bsrli_si128(_mm_loadu_si128((const __m128i *)(p)), 8)), 16)), 1)) +#endif + __m256 c1 = _mm256_setzero_ps(); + __m256 c2 = _mm256_setzero_ps(); + __m256 c3 = _mm256_setzero_ps(); + __m256 c4 = _mm256_setzero_ps(); + for (; i + 32 <= n; i += 32) { + c1 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i), LOAD(y + i)), c1); + c2 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 8), LOAD(y + i + 8)), c2); + c3 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c3); + c4 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 24), LOAD(y + i + 24)), c4); + } + __m128 g; + c1 = _mm256_add_ps(_mm256_add_ps(c1, c3), + _mm256_add_ps(c2, c4)); + g = _mm_add_ps(_mm256_extractf128_ps(c1, 1), + _mm256_castps256_ps128(c1)); + g = _mm_add_ps(g, _mm_movehl_ps(g, g)); + g = _mm_add_ss(g, _mm_movehdup_ps(g)); + sumf += (ggml_float)_mm_cvtss_f32(g); + +#undef LOAD +#endif + + for (; i < n; ++i) { + sumf += (ggml_float)(GGML_BF16_TO_FP32(x[i]) * + GGML_BF16_TO_FP32(y[i])); + } + *s = sumf; +} + +void ggml_vec_dot_f16(int n, float * GGML_RESTRICT s, size_t bs, ggml_fp16_t * GGML_RESTRICT x, size_t bx, ggml_fp16_t * GGML_RESTRICT y, size_t by, int nrc) { + assert(nrc == 1); + GGML_UNUSED(nrc); + GGML_UNUSED(bx); + GGML_UNUSED(by); + GGML_UNUSED(bs); + + ggml_float sumf = 0.0; + +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F16_STEP - 1)); + + GGML_F16_VEC sum[GGML_F16_ARR] = { GGML_F16_VEC_ZERO }; + + GGML_F16_VEC ax[GGML_F16_ARR]; + GGML_F16_VEC ay[GGML_F16_ARR]; + + for (int i = 0; i < np; i += GGML_F16_STEP) { + for (int j = 0; j < GGML_F16_ARR; j++) { + ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); + ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + + sum[j] = GGML_F16_VEC_FMA(sum[j], ax[j], ay[j]); + } + } + + // reduce sum0..sum3 to sum0 + GGML_F16_VEC_REDUCE(sumf, sum); + + // leftovers + for (int i = np; i < n; ++i) { + sumf += (ggml_float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); + } +#else + for (int i = 0; i < n; ++i) { + sumf += (ggml_float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); + } +#endif + + *s = sumf; +} + +void ggml_vec_silu_f32(const int n, float * y, const float * x) { + int i = 0; +#if defined(__AVX512F__) && defined(__AVX512DQ__) + for (; i + 15 < n; i += 16) { + _mm512_storeu_ps(y + i, ggml_v_silu(_mm512_loadu_ps(x + i))); + } +#elif defined(__AVX2__) && defined(__FMA__) + for (; i + 7 < n; i += 8) { + _mm256_storeu_ps(y + i, ggml_v_silu(_mm256_loadu_ps(x + i))); + } +#elif defined(__SSE2__) + for (; i + 3 < n; i += 4) { + _mm_storeu_ps(y + i, ggml_v_silu(_mm_loadu_ps(x + i))); + } +#elif defined(__ARM_NEON) && defined(__aarch64__) + for (; i + 3 < n; i += 4) { + vst1q_f32(y + i, ggml_v_silu(vld1q_f32(x + i))); + } +#endif + for (; i < n; ++i) { + y[i] = ggml_silu_f32(x[i]); + } +} + +ggml_float ggml_vec_soft_max_f32(const int n, float * y, const float * x, float max) { + int i = 0; + ggml_float sum = 0; +#if defined(__AVX512F__) && defined(__AVX512DQ__) + for (; i + 15 < n; i += 16) { + __m512 val = ggml_v_expf(_mm512_sub_ps(_mm512_loadu_ps(x + i), + _mm512_set1_ps(max))); + _mm512_storeu_ps(y + i, val); + sum += (ggml_float)_mm512_reduce_add_ps(val); + } +#elif defined(__AVX2__) && defined(__FMA__) + for (; i + 7 < n; i += 8) { + __m256 val = ggml_v_expf(_mm256_sub_ps(_mm256_loadu_ps(x + i), + _mm256_set1_ps(max))); + _mm256_storeu_ps(y + i, val); + __m128 val2 = _mm_add_ps(_mm256_extractf128_ps(val, 1), + _mm256_castps256_ps128(val)); + val2 = _mm_add_ps(val2, _mm_movehl_ps(val2, val2)); + val2 = _mm_add_ss(val2, _mm_movehdup_ps(val2)); + sum += (ggml_float)_mm_cvtss_f32(val2); + } +#elif defined(__SSE2__) + for (; i + 3 < n; i += 4) { + __m128 val = ggml_v_expf(_mm_sub_ps(_mm_loadu_ps(x + i), + _mm_set1_ps(max))); + _mm_storeu_ps(y + i, val); +#if defined(__AVX__) || defined(__AVX2__) || defined(__AVX512F__) + val = _mm_add_ps(val, _mm_movehl_ps(val, val)); + val = _mm_add_ss(val, _mm_movehdup_ps(val)); +#else + __m128 tmp = _mm_shuffle_ps(val, val, _MM_SHUFFLE(2, 3, 0, 1)); + val = _mm_add_ps(val, tmp); + tmp = _mm_movehl_ps(tmp, val); + val = _mm_add_ss(val, tmp); +#endif + sum += (ggml_float)_mm_cvtss_f32(val); + } +#elif defined(__ARM_NEON) && defined(__aarch64__) + for (; i + 3 < n; i += 4) { + float32x4_t val = ggml_v_expf(vsubq_f32(vld1q_f32(x + i), + vdupq_n_f32(max))); + vst1q_f32(y + i, val); + sum += (ggml_float)vaddvq_f32(val); + } +#endif + for (; i < n; ++i) { + float val = expf(x[i] - max); + sum += (ggml_float)val; + y[i] = val; + } + return sum; +} + +ggml_float ggml_vec_log_soft_max_f32(const int n, float * y, const float * x, float max) { + // log(soft_max) = log(soft_max_i / soft_max_sum) = log(soft_max_i) - log(soft_max_sum) = (logit_i - max) - log(soft_max_i) + + int i = 0; + ggml_float sum = 0; + for (; i < n; ++i) { + float val = x[i] - max; + y[i] = val; + sum += (ggml_float)expf(val); + } + return sum = (ggml_float)logf(sum); +} diff --git a/ggml/src/ggml-cpu/vec.h b/ggml/src/ggml-cpu/vec.h new file mode 100644 index 0000000000000..23cbb3051f2c8 --- /dev/null +++ b/ggml/src/ggml-cpu/vec.h @@ -0,0 +1,802 @@ +// Vectorized functions for fundamental operations + +#pragma once + +#include "ggml-impl.h" +#include "simd-mappings.h" +#include "ggml.h" + +#if defined(GGML_USE_ACCELERATE) +#include +#endif + +// floating point type used to accumulate sums +typedef double ggml_float; + +#define GGML_GELU_FP16 +#define GGML_GELU_QUICK_FP16 + +#define GGML_SOFT_MAX_UNROLL 4 +#define GGML_VEC_DOT_UNROLL 2 +#define GGML_VEC_MAD_UNROLL 32 + +#ifdef __cplusplus +extern "C" { +#endif + +// +// global data +// + +// precomputed gelu table for f16 (128 KB) +extern ggml_fp16_t ggml_table_gelu_f16[1 << 16]; + +// precomputed quick gelu table for f16 (128 KB) +extern ggml_fp16_t ggml_table_gelu_quick_f16[1 << 16]; + +// +// fundamental operations +// + +void ggml_vec_dot_f32(int n, float * GGML_RESTRICT s, size_t bs, const float * GGML_RESTRICT x, size_t bx, const float * GGML_RESTRICT y, size_t by, int nrc); +void ggml_vec_dot_bf16(int n, float * GGML_RESTRICT s, size_t bs, ggml_bf16_t * GGML_RESTRICT x, size_t bx, ggml_bf16_t * GGML_RESTRICT y, size_t by, int nrc); +void ggml_vec_dot_f16(int n, float * GGML_RESTRICT s, size_t bs, ggml_fp16_t * GGML_RESTRICT x, size_t bx, ggml_fp16_t * GGML_RESTRICT y, size_t by, int nrc); + +void ggml_vec_silu_f32(const int n, float * y, const float * x); +ggml_float ggml_vec_soft_max_f32(const int n, float * y, const float * x, float max); +ggml_float ggml_vec_log_soft_max_f32(const int n, float * y, const float * x, float max); + +inline static void ggml_vec_set_i8(const int n, int8_t * x, const int8_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_vec_set_i16(const int n, int16_t * x, const int16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } + +inline static void ggml_vec_set_i32(const int n, int32_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_vec_cpy_i32(const int n, int32_t * y, const int32_t * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } + +inline static void ggml_vec_set_f16(const int n, ggml_fp16_t * x, const ggml_fp16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_vec_set_bf16(const int n, ggml_bf16_t * x, const ggml_bf16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_vec_add_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] + y[i]; } +inline static void ggml_vec_add_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { + for (int i = 0; i < n; ++i) { + z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) + GGML_FP16_TO_FP32(y[i])); + } +} +inline static void ggml_vec_add1_f32(const int n, float * z, const float * x, const float v) { for (int i = 0; i < n; ++i) z[i] = x[i] + v; } +inline static void ggml_vec_acc_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] += x[i]; } +inline static void ggml_vec_acc1_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] += v; } +inline static void ggml_vec_sub_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] - y[i]; } +inline static void ggml_vec_sub_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { + for (int i = 0; i < n; ++i) { + z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) - GGML_FP16_TO_FP32(y[i])); + } +} +inline static void ggml_vec_set_f32 (const int n, float * x, const float v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_vec_cpy_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } +inline static void ggml_vec_neg_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = -x[i]; } +inline static void ggml_vec_neg_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(-GGML_FP16_TO_FP32(x[i])); + } +} + +inline static void ggml_vec_mul_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]*y[i]; } +inline static void ggml_vec_mul_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { + for (int i = 0; i < n; ++i) { + z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) * GGML_FP16_TO_FP32(y[i])); + } +} +inline static void ggml_vec_div_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]/y[i]; } +inline static void ggml_vec_div_f16 (const int n, ggml_fp16_t * z, const ggml_fp16_t * x, const ggml_fp16_t * y) { + for (int i = 0; i < n; ++i) { + z[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(x[i]) / GGML_FP16_TO_FP32(y[i])); + } +} + +// compute GGML_VEC_DOT_UNROLL dot products at once +// xs - x row stride in bytes +inline static void ggml_vec_dot_f16_unroll(const int n, const int xs, float * GGML_RESTRICT s, void * GGML_RESTRICT xv, ggml_fp16_t * GGML_RESTRICT y) { + ggml_float sumf[GGML_VEC_DOT_UNROLL] = { 0.0 }; + + ggml_fp16_t * GGML_RESTRICT x[GGML_VEC_DOT_UNROLL]; + + for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { + x[i] = (ggml_fp16_t *) ((char *) xv + i*xs); + } + +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F16_STEP - 1)); + + GGML_F16_VEC sum[GGML_VEC_DOT_UNROLL][GGML_F16_ARR] = { { GGML_F16_VEC_ZERO } }; + + GGML_F16_VEC ax[GGML_F16_ARR]; + GGML_F16_VEC ay[GGML_F16_ARR]; + + for (int i = 0; i < np; i += GGML_F16_STEP) { + for (int j = 0; j < GGML_F16_ARR; j++) { + ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + + for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { + ax[j] = GGML_F16_VEC_LOAD(x[k] + i + j*GGML_F16_EPR, j); + + sum[k][j] = GGML_F16_VEC_FMA(sum[k][j], ax[j], ay[j]); + } + } + } + + // reduce sum0..sum3 to sum0 + for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { + GGML_F16_VEC_REDUCE(sumf[k], sum[k]); + } + + // leftovers + for (int i = np; i < n; ++i) { + for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { + sumf[j] += (ggml_float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); + } + } +#else + for (int i = 0; i < n; ++i) { + for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { + sumf[j] += (ggml_float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); + } + } +#endif + + for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { + s[i] = (float)sumf[i]; + } +} + +inline static void ggml_vec_mad_f32(const int n, float * GGML_RESTRICT y, const float * GGML_RESTRICT x, const float v) { +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F32_STEP - 1)); + + GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); + + GGML_F32_VEC ax[GGML_F32_ARR]; + GGML_F32_VEC ay[GGML_F32_ARR]; + + for (int i = 0; i < np; i += GGML_F32_STEP) { + for (int j = 0; j < GGML_F32_ARR; j++) { + ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); + ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + ay[j] = GGML_F32_VEC_FMA(ay[j], ax[j], vx); + + GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); + } + } + + // leftovers + for (int i = np; i < n; ++i) { + y[i] += x[i]*v; + } +#else + // scalar + for (int i = 0; i < n; ++i) { + y[i] += x[i]*v; + } +#endif +} + +inline static void ggml_vec_mad_f16(const int n, ggml_fp16_t * GGML_RESTRICT y, const ggml_fp16_t * GGML_RESTRICT x, const float v) { +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F16_STEP - 1)); + + GGML_F16_VEC vx = GGML_F16_VEC_SET1(v); + + GGML_F16_VEC ax[GGML_F16_ARR]; + GGML_F16_VEC ay[GGML_F16_ARR]; + + for (int i = 0; i < np; i += GGML_F16_STEP) { + for (int j = 0; j < GGML_F16_ARR; j++) { + ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); + ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + ay[j] = GGML_F16_VEC_FMA(ay[j], ax[j], vx); + + GGML_F16_VEC_STORE(y + i + j*GGML_F16_EPR, ay, j); + } + } + + // leftovers + for (int i = np; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); + } +#else + // scalar + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); + } +#endif +} + +// xs and vs are byte strides of x and v +inline static void ggml_vec_mad_f32_unroll(const int n, const int xs, const int vs, float * GGML_RESTRICT y, const float * GGML_RESTRICT xv, const float * GGML_RESTRICT vv) { + + const float * GGML_RESTRICT x[GGML_VEC_MAD_UNROLL]; + const float * GGML_RESTRICT v[GGML_VEC_MAD_UNROLL]; + + for (int i = 0; i < GGML_VEC_MAD_UNROLL; ++i) { + x[i] = (const float *) ((const char *) xv + i*xs); + v[i] = (const float *) ((const char *) vv + i*vs); + } + +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F32_STEP - 1)); + + GGML_F32_VEC vx[GGML_VEC_MAD_UNROLL]; + + for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { + vx[k] = GGML_F32_VEC_SET1(v[k][0]); + } + + GGML_F32_VEC ax[GGML_VEC_MAD_UNROLL][GGML_F32_ARR]; + GGML_F32_VEC ay[GGML_F32_ARR]; + + for (int i = 0; i < np; i += GGML_F32_STEP) { + for (int j = 0; j < GGML_F32_ARR; j++) { + ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + + for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { + ax[k][j] = GGML_F32_VEC_LOAD(x[k] + i + j*GGML_F32_EPR); + ay[j] = GGML_F32_VEC_FMA(ay[j], ax[k][j], vx[k]); + } + + GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); + } + } + + // leftovers + for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { + for (int i = np; i < n; ++i) { + y[i] += x[k][i]*v[k][0]; + } + } +#else + // scalar + for (int k = 0; k < GGML_VEC_MAD_UNROLL; ++k) { + for (int i = 0; i < n; ++i) { + y[i] += x[k][i]*v[k][0]; + } + } +#endif +} + +//inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] *= v; } +inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { +#if defined(GGML_USE_ACCELERATE) + vDSP_vsmul(y, 1, &v, y, 1, n); +#elif defined(GGML_SIMD) + const int np = (n & ~(GGML_F32_STEP - 1)); + + GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); + + GGML_F32_VEC ay[GGML_F32_ARR]; + + for (int i = 0; i < np; i += GGML_F32_STEP) { + for (int j = 0; j < GGML_F32_ARR; j++) { + ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + ay[j] = GGML_F32_VEC_MUL(ay[j], vx); + + GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); + } + } + + // leftovers + for (int i = np; i < n; ++i) { + y[i] *= v; + } +#else + // scalar + for (int i = 0; i < n; ++i) { + y[i] *= v; + } +#endif +} + +inline static void ggml_vec_scale_f16(const int n, ggml_fp16_t * y, const float v) { +#if defined(GGML_SIMD) + const int np = (n & ~(GGML_F16_STEP - 1)); + + GGML_F16_VEC vx = GGML_F16_VEC_SET1(v); + + GGML_F16_VEC ay[GGML_F16_ARR]; + + for (int i = 0; i < np; i += GGML_F16_STEP) { + for (int j = 0; j < GGML_F16_ARR; j++) { + ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + ay[j] = GGML_F16_VEC_MUL(ay[j], vx); + + GGML_F16_VEC_STORE(y + i + j*GGML_F16_EPR, ay, j); + } + } + + // leftovers + for (int i = np; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i])*v); + } +#else + // scalar + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i])*v); + } +#endif +} + +inline static void ggml_vec_norm_f32 (const int n, float * s, const float * x) { ggml_vec_dot_f32(n, s, 0, x, 0, x, 0, 1); *s = sqrtf(*s); } +inline static void ggml_vec_sqr_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]*x[i]; } +inline static void ggml_vec_sqr_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16(v*v); + } +} +inline static void ggml_vec_sqrt_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sqrtf(x[i]); } +inline static void ggml_vec_sqrt_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(sqrtf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_log_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = logf(x[i]); } +inline static void ggml_vec_log_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(logf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_sin_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sinf(x[i]); } +inline static void ggml_vec_sin_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(sinf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_cos_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = cosf(x[i]); } +inline static void ggml_vec_cos_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(cosf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_abs_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fabsf(x[i]); } +inline static void ggml_vec_abs_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(fabsf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_sgn_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); } +inline static void ggml_vec_sgn_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16((v > 0.f) ? 1.f : ((v < 0.f) ? -1.f : 0.f)); + } +} +inline static void ggml_vec_step_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : 0.f; } +inline static void ggml_vec_step_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16((GGML_FP16_TO_FP32(x[i]) > 0.f) ? 1.f : 0.f); + } +} +inline static void ggml_vec_tanh_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = tanhf(x[i]); } +inline static void ggml_vec_tanh_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(tanhf(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_elu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : expm1f(x[i]); } +inline static void ggml_vec_elu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(expm1f(GGML_FP16_TO_FP32(x[i]))); + } +} +inline static void ggml_vec_relu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : 0.f; } +inline static void ggml_vec_relu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16((v > 0.f) ? v : 0.f); + } +} +inline static void ggml_vec_leaky_relu_f32 (const int n, float * y, const float * x, const float ns) { for (int i = 0; i < n; ++i) y[i] = ((x[i] > 0.f) ? x[i] : 0.f) + ns * ((x[i] < 0.0f) ? x[i] : 0.f); } +inline static void ggml_vec_leaky_relu_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x, const float ns) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16(((v > 0.f) ? v : 0.f) + ns * ((v < 0.0f) ? v : 0.f)); + } +} +inline static void ggml_vec_sigmoid_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = 1.f / (1.f + expf(-x[i])); } +inline static void ggml_vec_sigmoid_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(1.f / (1.f + expf(-GGML_FP16_TO_FP32(x[i])))); + } +} +// TODO: optimize performance +inline static void ggml_vec_hardswish_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i] * fminf(1.0f, fmaxf(0.0f, (x[i] + 3.0f) / 6.0f)); } +inline static void ggml_vec_hardswish_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16(v * fminf(1.0f, fmaxf(0.0f, (v + 3.0f) / 6.0f))); + } +} +inline static void ggml_vec_hardsigmoid_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fminf(1.0f, fmaxf(0.0f, (x[i] + 3.0f) / 6.0f)); } +inline static void ggml_vec_hardsigmoid_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(fminf(1.0f, fmaxf(0.0f, (GGML_FP16_TO_FP32(x[i]) + 3.0f) / 6.0f))); + } +} +inline static void ggml_vec_exp_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = expf(x[i]); } +inline static void ggml_vec_exp_f16 (const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(expf(GGML_FP16_TO_FP32(x[i]))); + } +} + +static const float GELU_COEF_A = 0.044715f; +static const float GELU_QUICK_COEF = -1.702f; +static const float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f; + +inline static float ggml_gelu_f32(float x) { + return 0.5f*x*(1.0f + tanhf(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); +} + +inline static void ggml_vec_gelu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + const uint16_t * i16 = (const uint16_t *) x; + for (int i = 0; i < n; ++i) { + y[i] = ggml_table_gelu_f16[i16[i]]; + } +} + +#ifdef GGML_GELU_FP16 +inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { + uint16_t t; + for (int i = 0; i < n; ++i) { + if (x[i] <= -10.0f) { + y[i] = 0.0f; + } else if (x[i] >= 10.0f) { + y[i] = x[i]; + } else { + ggml_fp16_t fp16 = GGML_FP32_TO_FP16(x[i]); + memcpy(&t, &fp16, sizeof(uint16_t)); + y[i] = GGML_FP16_TO_FP32(ggml_table_gelu_f16[t]); + } + } +} +#else +inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { + for (int i = 0; i < n; ++i) { + y[i] = ggml_gelu_f32(x[i]); + } +} +#endif + +inline static float ggml_gelu_quick_f32(float x) { + return x*(1.0f/(1.0f+expf(GELU_QUICK_COEF*x))); +} + +//inline static void ggml_vec_gelu_quick_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { +// const uint16_t * i16 = (const uint16_t *) x; +// for (int i = 0; i < n; ++i) { +// y[i] = ggml_table_gelu_quick_f16[i16[i]]; +// } +//} + +#ifdef GGML_GELU_QUICK_FP16 +inline static void ggml_vec_gelu_quick_f32(const int n, float * y, const float * x) { + uint16_t t; + for (int i = 0; i < n; ++i) { + ggml_fp16_t fp16 = GGML_FP32_TO_FP16(x[i]); + memcpy(&t, &fp16, sizeof(uint16_t)); + y[i] = GGML_FP16_TO_FP32(ggml_table_gelu_quick_f16[t]); + } +} +#else +inline static void ggml_vec_gelu_quick_f32(const int n, float * y, const float * x) { + for (int i = 0; i < n; ++i) { + y[i] = ggml_gelu_quick_f32(x[i]); + } +} +#endif + +inline static void ggml_vec_gelu_quick_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + float v = GGML_FP16_TO_FP32(x[i]); + y[i] = GGML_FP32_TO_FP16(v*(1.0f/(1.0f+expf(GELU_QUICK_COEF*v)))); + } +} + +// Sigmoid Linear Unit (SiLU) function +inline static float ggml_silu_f32(float x) { + return x/(1.0f + expf(-x)); +} +inline static ggml_fp16_t ggml_silu_f16(ggml_fp16_t x) { + float v = GGML_FP16_TO_FP32(x); + return GGML_FP32_TO_FP16(v/(1.0f + expf(-v))); +} + +#if __FINITE_MATH_ONLY__ +#error "some routines in ggml.c require non-finite math arithmetics -- pass -fno-finite-math-only to the compiler to fix" +#error "ref: https://github.com/ggml-org/llama.cpp/pull/7154#issuecomment-2143844461" +#endif + +#if defined(__ARM_NEON) && defined(__aarch64__) + +// adapted from arm limited optimized routine +// the maximum error is 1.45358 plus 0.5 ulps +// numbers above 88.38 will flush to infinity +// numbers beneath -103.97 will flush to zero +inline static float32x4_t ggml_v_expf(float32x4_t x) { + const float32x4_t r = vdupq_n_f32(0x1.8p23f); + const float32x4_t z = vfmaq_f32(r, x, vdupq_n_f32(0x1.715476p+0f)); + const float32x4_t n = vsubq_f32(z, r); + const float32x4_t b = vfmsq_f32(vfmsq_f32(x, n, vdupq_n_f32(0x1.62e4p-1f)), n, + vdupq_n_f32(0x1.7f7d1cp-20f)); + const uint32x4_t e = vshlq_n_u32(vreinterpretq_u32_f32(z), 23); + const float32x4_t k = vreinterpretq_f32_u32(vaddq_u32(e, vreinterpretq_u32_f32(vdupq_n_f32(1)))); + const uint32x4_t c = vcagtq_f32(n, vdupq_n_f32(126)); + const float32x4_t u = vmulq_f32(b, b); + const float32x4_t j = vfmaq_f32( + vmulq_f32(vdupq_n_f32(0x1.ffffecp-1f), b), + vfmaq_f32(vfmaq_f32(vdupq_n_f32(0x1.fffdb6p-2f), vdupq_n_f32(0x1.555e66p-3f), b), + vfmaq_f32(vdupq_n_f32(0x1.573e2ep-5f), vdupq_n_f32(0x1.0e4020p-7f), b), u), u); + if (!vpaddd_u64(vreinterpretq_u64_u32(c))) + return vfmaq_f32(k, j, k); + const uint32x4_t d = vandq_u32(vclezq_f32(n), vdupq_n_u32(0x82000000)); + const float32x4_t s1 = vreinterpretq_f32_u32(vaddq_u32(d, vdupq_n_u32(0x7f000000))); + const float32x4_t s2 = vreinterpretq_f32_u32(vsubq_u32(e, d)); + return vbslq_f32(vcagtq_f32(n, vdupq_n_f32(192)), vmulq_f32(s1, s1), + vbslq_f32(c, vmulq_f32(vfmaq_f32(s2, s2, j), s1), vfmaq_f32(k, k, j))); +} + +// computes silu x/(1+exp(-x)) in single precision vector +inline static float32x4_t ggml_v_silu(float32x4_t x) { + const float32x4_t one = vdupq_n_f32(1.0f); + const float32x4_t zero = vdupq_n_f32(0.0f); + const float32x4_t neg_x = vsubq_f32(zero, x); + const float32x4_t exp_neg_x = ggml_v_expf(neg_x); + const float32x4_t one_plus_exp_neg_x = vaddq_f32(one, exp_neg_x); + return vdivq_f32(x, one_plus_exp_neg_x); +} + +#elif defined(__AVX512F__) && defined(__AVX512DQ__) + +// adapted from arm limited optimized routine +// the maximum error is 1.45358 plus 0.5 ulps +// numbers above 88.38 will flush to infinity +// numbers beneath -103.97 will flush to zero +inline static __m512 ggml_v_expf(__m512 x) { + const __m512 r = _mm512_set1_ps(0x1.8p23f); + const __m512 z = _mm512_fmadd_ps(x, _mm512_set1_ps(0x1.715476p+0f), r); + const __m512 n = _mm512_sub_ps(z, r); + const __m512 b = + _mm512_fnmadd_ps(n, _mm512_set1_ps(0x1.7f7d1cp-20f), + _mm512_fnmadd_ps(n, _mm512_set1_ps(0x1.62e4p-1f), x)); + const __mmask16 d = + _mm512_cmp_ps_mask(_mm512_abs_ps(n), _mm512_set1_ps(192), _CMP_GT_OQ); + const __m512 u = _mm512_mul_ps(b, b); + const __m512 j = _mm512_fmadd_ps( + _mm512_fmadd_ps(_mm512_fmadd_ps(_mm512_set1_ps(0x1.0e4020p-7f), b, + _mm512_set1_ps(0x1.573e2ep-5f)), + u, + _mm512_fmadd_ps(_mm512_set1_ps(0x1.555e66p-3f), b, + _mm512_set1_ps(0x1.fffdb6p-2f))), + u, + _mm512_fmadd_ps(_mm512_set1_ps(0x1.ffffecp-1f), b, _mm512_set1_ps(1.0F))); + const __m512 res = _mm512_scalef_ps(j, n); + if (_mm512_kortestz(d, d)) + return res; + const __m512 zero = _mm512_setzero_ps(); + const __m512 alt = _mm512_mask_blend_ps( + _mm512_cmp_ps_mask(n, zero, _CMP_LE_OQ), _mm512_set1_ps(INFINITY), zero); + return _mm512_mask_blend_ps(d, res, alt); +} + +// computes silu x/(1+exp(-x)) in single precision vector +inline static __m512 ggml_v_silu(__m512 x) { + const __m512 one = _mm512_set1_ps(1); + const __m512 zero = _mm512_setzero_ps(); + const __m512 neg_x = _mm512_sub_ps(zero, x); + const __m512 exp_neg_x = ggml_v_expf(neg_x); + const __m512 one_plus_exp_neg_x = _mm512_add_ps(one, exp_neg_x); + return _mm512_div_ps(x, one_plus_exp_neg_x); +} + +#elif defined(__AVX2__) && defined(__FMA__) + +// adapted from arm limited optimized routine +// the maximum error is 1.45358 plus 0.5 ulps +// numbers above 88.38 will flush to infinity +// numbers beneath -103.97 will flush to zero +inline static __m256 ggml_v_expf(__m256 x) { + const __m256 r = _mm256_set1_ps(0x1.8p23f); + const __m256 z = _mm256_fmadd_ps(x, _mm256_set1_ps(0x1.715476p+0f), r); + const __m256 n = _mm256_sub_ps(z, r); + const __m256 b = _mm256_fnmadd_ps(n, _mm256_set1_ps(0x1.7f7d1cp-20f), + _mm256_fnmadd_ps(n, _mm256_set1_ps(0x1.62e4p-1f), x)); + const __m256i e = _mm256_slli_epi32(_mm256_castps_si256(z), 23); + const __m256 k = _mm256_castsi256_ps( + _mm256_add_epi32(e, _mm256_castps_si256(_mm256_set1_ps(1)))); + const __m256i c = _mm256_castps_si256( + _mm256_cmp_ps(_mm256_andnot_ps(_mm256_set1_ps(-0.f), n), + _mm256_set1_ps(126), _CMP_GT_OQ)); + const __m256 u = _mm256_mul_ps(b, b); + const __m256 j = _mm256_fmadd_ps(_mm256_fmadd_ps(_mm256_fmadd_ps(_mm256_set1_ps(0x1.0e4020p-7f), b, + _mm256_set1_ps(0x1.573e2ep-5f)), u, + _mm256_fmadd_ps(_mm256_set1_ps(0x1.555e66p-3f), b, + _mm256_set1_ps(0x1.fffdb6p-2f))), + u, _mm256_mul_ps(_mm256_set1_ps(0x1.ffffecp-1f), b)); + if (!_mm256_movemask_ps(_mm256_castsi256_ps(c))) + return _mm256_fmadd_ps(j, k, k); + const __m256i g = _mm256_and_si256( + _mm256_castps_si256(_mm256_cmp_ps(n, _mm256_setzero_ps(), _CMP_LE_OQ)), + _mm256_set1_epi32(0x82000000u)); + const __m256 s1 = + _mm256_castsi256_ps(_mm256_add_epi32(g, _mm256_set1_epi32(0x7f000000u))); + const __m256 s2 = _mm256_castsi256_ps(_mm256_sub_epi32(e, g)); + const __m256i d = _mm256_castps_si256( + _mm256_cmp_ps(_mm256_andnot_ps(_mm256_set1_ps(-0.f), n), + _mm256_set1_ps(192), _CMP_GT_OQ)); + return _mm256_or_ps( + _mm256_and_ps(_mm256_castsi256_ps(d), _mm256_mul_ps(s1, s1)), + _mm256_andnot_ps( + _mm256_castsi256_ps(d), + _mm256_or_ps( + _mm256_and_ps(_mm256_castsi256_ps(c), + _mm256_mul_ps(_mm256_fmadd_ps(s2, j, s2), s1)), + _mm256_andnot_ps(_mm256_castsi256_ps(c), _mm256_fmadd_ps(k, j, k))))); +} + +// computes silu x/(1+exp(-x)) in single precision vector +inline static __m256 ggml_v_silu(__m256 x) { + const __m256 one = _mm256_set1_ps(1); + const __m256 zero = _mm256_setzero_ps(); + const __m256 neg_x = _mm256_sub_ps(zero, x); + const __m256 exp_neg_x = ggml_v_expf(neg_x); + const __m256 one_plus_exp_neg_x = _mm256_add_ps(one, exp_neg_x); + return _mm256_div_ps(x, one_plus_exp_neg_x); +} + +#elif defined(__SSE2__) // __AVX2__ / __ARM_NEON + +#if defined(__FMA__) +#define MADD128(x, y, z) _mm_fmadd_ps(x, y, z) +#define NMADD128(x, y, z) _mm_fnmadd_ps(x, y, z) +#else +#define MADD128(x, y, z) _mm_add_ps(_mm_mul_ps(x, y), z) +#define NMADD128(x, y, z) _mm_sub_ps(z, _mm_mul_ps(x, y)) +#endif + +// adapted from arm limited optimized routine +// the maximum error is 1.45358 plus 0.5 ulps +// numbers above 88.38 will flush to infinity +// numbers beneath -103.97 will flush to zero +inline static __m128 ggml_v_expf(__m128 x) { + const __m128 r = _mm_set1_ps(0x1.8p23f); + const __m128 z = MADD128(x, _mm_set1_ps(0x1.715476p+0f), r); + const __m128 n = _mm_sub_ps(z, r); + const __m128 b = + NMADD128(n, _mm_set1_ps(0x1.7f7d1cp-20f), NMADD128(n, _mm_set1_ps(0x1.62e4p-1f), x)); + const __m128i e = _mm_slli_epi32(_mm_castps_si128(z), 23); + const __m128 k = _mm_castsi128_ps(_mm_add_epi32(e, _mm_castps_si128(_mm_set1_ps(1)))); + const __m128i c = + _mm_castps_si128(_mm_cmpgt_ps(_mm_andnot_ps(_mm_set1_ps(-0.f), n), _mm_set1_ps(126))); + const __m128 u = _mm_mul_ps(b, b); + const __m128 j = + MADD128(MADD128(MADD128(_mm_set1_ps(0x1.0e4020p-7f), b, _mm_set1_ps(0x1.573e2ep-5f)), u, + MADD128(_mm_set1_ps(0x1.555e66p-3f), b, _mm_set1_ps(0x1.fffdb6p-2f))), + u, _mm_mul_ps(_mm_set1_ps(0x1.ffffecp-1f), b)); + if (!_mm_movemask_epi8(c)) + return MADD128(j, k, k); + const __m128i g = _mm_and_si128(_mm_castps_si128(_mm_cmple_ps(n, _mm_setzero_ps())), + _mm_set1_epi32(0x82000000u)); + const __m128 s1 = _mm_castsi128_ps(_mm_add_epi32(g, _mm_set1_epi32(0x7f000000u))); + const __m128 s2 = _mm_castsi128_ps(_mm_sub_epi32(e, g)); + const __m128i d = + _mm_castps_si128(_mm_cmpgt_ps(_mm_andnot_ps(_mm_set1_ps(-0.f), n), _mm_set1_ps(192))); + return _mm_or_ps( + _mm_and_ps(_mm_castsi128_ps(d), _mm_mul_ps(s1, s1)), + _mm_andnot_ps(_mm_castsi128_ps(d), + _mm_or_ps(_mm_and_ps(_mm_castsi128_ps(c), _mm_mul_ps(MADD128(s2, j, s2), s1)), + _mm_andnot_ps(_mm_castsi128_ps(c), MADD128(k, j, k))))); +} + +// computes silu x/(1+exp(-x)) in single precision vector +inline static __m128 ggml_v_silu(__m128 x) { + const __m128 one = _mm_set1_ps(1); + const __m128 zero = _mm_setzero_ps(); + const __m128 neg_x = _mm_sub_ps(zero, x); + const __m128 exp_neg_x = ggml_v_expf(neg_x); + const __m128 one_plus_exp_neg_x = _mm_add_ps(one, exp_neg_x); + return _mm_div_ps(x, one_plus_exp_neg_x); +} + +#endif // __ARM_NEON / __AVX2__ / __SSE2__ + +inline static void ggml_vec_silu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { + for (int i = 0; i < n; ++i) { + y[i] = ggml_silu_f16(x[i]); + } +} + +inline static float ggml_silu_backward_f32(float x, float dy) { + const float s = 1.0f/(1.0f + expf(-x)); + return dy*s*(1.0f + x*(1.0f - s)); +} + +inline static ggml_fp16_t ggml_silu_backward_f16(ggml_fp16_t x, ggml_fp16_t dy) { + const float v = GGML_FP16_TO_FP32(x); + const float s = 1.0f/(1.0f + expf(-v)); + return GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(dy)*s*(1.0f + v*(1.0f - s))); +} + +inline static void ggml_vec_silu_backward_f32(const int n, float * dx, const float * x, const float * dy) { + for (int i = 0; i < n; ++i) { + dx[i] = ggml_silu_backward_f32(x[i], dy[i]); + } +} + +inline static void ggml_vec_silu_backward_f16(const int n, ggml_fp16_t * dx, const ggml_fp16_t * x, const ggml_fp16_t * dy) { + for (int i = 0; i < n; ++i) { + dx[i] = ggml_silu_backward_f16(x[i], dy[i]); + } +} + +inline static void ggml_vec_sum_f32(const int n, float * s, const float * x) { +#ifndef GGML_USE_ACCELERATE + ggml_float sum = 0.0; + for (int i = 0; i < n; ++i) { + sum += (ggml_float)x[i]; + } + *s = (float)sum; +#else + vDSP_sve(x, 1, s, n); +#endif +} + +inline static void ggml_vec_sum_f32_ggf(const int n, ggml_float * s, const float * x) { + ggml_float sum = 0.0; + for (int i = 0; i < n; ++i) { + sum += (ggml_float)x[i]; + } + *s = sum; +} + +inline static void ggml_vec_sum_f16_ggf(const int n, float * s, const ggml_fp16_t * x) { + float sum = 0.0f; + for (int i = 0; i < n; ++i) { + sum += GGML_FP16_TO_FP32(x[i]); + } + *s = sum; +} + +inline static void ggml_vec_sum_bf16_ggf(const int n, float * s, const ggml_bf16_t * x) { + float sum = 0.0f; + for (int i = 0; i < n; ++i) { + sum += GGML_BF16_TO_FP32(x[i]); + } + *s = sum; +} + +inline static void ggml_vec_max_f32(const int n, float * s, const float * x) { +#ifndef GGML_USE_ACCELERATE + float max = -INFINITY; + for (int i = 0; i < n; ++i) { + max = MAX(max, x[i]); + } + *s = max; +#else + vDSP_maxv(x, 1, s, n); +#endif +} + +inline static void ggml_vec_norm_inv_f32(const int n, float * s, const float * x) { + ggml_vec_norm_f32(n, s, x); + *s = 1.f/(*s); +} + +inline static void ggml_vec_argmax_f32(const int n, int * s, const float * x) { + float max = -INFINITY; + int idx = 0; + for (int i = 0; i < n; ++i) { + max = MAX(max, x[i]); + if (max == x[i]) { idx = i; } + } + *s = idx; +} + +#ifdef __cplusplus +} +#endif From 36ca8b362885e4b4984d72e348ba403568864a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Fri, 4 Apr 2025 21:05:12 +0200 Subject: [PATCH 06/96] CUDA: don't convert BF16 weights to FP32 (ggml/1174) * add bf16 support * use convert_from_bf16_cuda instead of convert_unary_cuda for f32 * revert 7ec5085 * move functionality into convert_unary with constexpr --- ggml/src/ggml-cuda/convert.cu | 21 ++++++++++++++++++++- ggml/src/ggml-cuda/convert.cuh | 3 +++ ggml/src/ggml-cuda/ggml-cuda.cu | 30 +++++++++++++++++++++++++++++- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/convert.cu b/ggml/src/ggml-cuda/convert.cu index 2997e2b4d5bd5..2681c42ebecb9 100644 --- a/ggml/src/ggml-cuda/convert.cu +++ b/ggml/src/ggml-cuda/convert.cu @@ -579,7 +579,13 @@ static __global__ void convert_unary(const void * __restrict__ vx, dst_t * __res const src_t * x = (const src_t *) vx; - y[i] = x[i]; + if constexpr (std::is_same_v) { + y[i] = __bfloat162float(x[i]); + } else if constexpr (std::is_same_v && std::is_same_v) { + y[i] = (float)x[i]; + } else { + y[i] = x[i]; + } } template @@ -588,6 +594,17 @@ static void convert_unary_cuda(const void * __restrict__ vx, dst_t * __restrict_ convert_unary<<>>(vx, y, k); } +to_bf16_cuda_t ggml_get_to_bf16_cuda(ggml_type type) { + switch (type) { + case GGML_TYPE_F32: + return convert_unary_cuda; + case GGML_TYPE_F16: + return convert_unary_cuda; + default: + return nullptr; + } +} + to_fp16_cuda_t ggml_get_to_fp16_cuda(ggml_type type) { switch (type) { case GGML_TYPE_Q4_0: @@ -633,6 +650,8 @@ to_fp16_cuda_t ggml_get_to_fp16_cuda(ggml_type type) { return dequantize_row_iq3_s_cuda; case GGML_TYPE_F32: return convert_unary_cuda; + case GGML_TYPE_BF16: + return convert_unary_cuda; default: return nullptr; } diff --git a/ggml/src/ggml-cuda/convert.cuh b/ggml/src/ggml-cuda/convert.cuh index 5394be9f161b3..411a13cf12667 100644 --- a/ggml/src/ggml-cuda/convert.cuh +++ b/ggml/src/ggml-cuda/convert.cuh @@ -7,7 +7,10 @@ using to_t_cuda_t = void (*)(const void * __restrict__ x, T * __restrict__ y, in typedef to_t_cuda_t to_fp32_cuda_t; typedef to_t_cuda_t to_fp16_cuda_t; +typedef to_t_cuda_t to_bf16_cuda_t; to_fp16_cuda_t ggml_get_to_fp16_cuda(ggml_type type); +to_bf16_cuda_t ggml_get_to_bf16_cuda(ggml_type type); + to_fp32_cuda_t ggml_get_to_fp32_cuda(ggml_type type); diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 57319bafdb70a..78717df1a6095 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1194,7 +1194,35 @@ static void ggml_cuda_op_mul_mat_cublas( const bool use_fp16 = (src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type)) && ggml_is_contiguous(src0) && row_diff == src0->ne[1] && dst->op_params[0] == GGML_PREC_DEFAULT; - if (((GGML_CUDA_CC_IS_NVIDIA(cc) && cc >= GGML_CUDA_CC_VOLTA) || GGML_CUDA_CC_IS_AMD(cc)) && use_fp16) { + if (src0->type == GGML_TYPE_BF16 && ggml_is_contiguous(src0) && row_diff == src0->ne[1]) { + ggml_cuda_pool_alloc src1_as_bf16(ctx.pool(id)); + if (src1->type != GGML_TYPE_BF16) { + const to_bf16_cuda_t to_bf16_cuda = ggml_get_to_bf16_cuda(src1->type); + GGML_ASSERT(to_bf16_cuda != nullptr); + size_t ne = src1_ncols*ne10; + src1_as_bf16.alloc(ne); + to_bf16_cuda(src1_ddf_i, src1_as_bf16.get(), ne, stream); + } + const nv_bfloat16 * src1_ptr = src1->type == GGML_TYPE_BF16 ? (const nv_bfloat16 *) src1_ddf_i : src1_as_bf16.get(); + const nv_bfloat16 * src0_ptr = (const nv_bfloat16 *)src0_dd_i; + ggml_cuda_pool_alloc dst_bf16(ctx.pool(id), row_diff*src1_ncols); + + const float alpha_f32 = 1.0f; + const float beta_f32 = 0.0f; + + CUBLAS_CHECK(cublasSetStream(ctx.cublas_handle(id), stream)); + CUBLAS_CHECK( + cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, + row_diff, src1_ncols, ne10, + &alpha_f32, src0_ptr, CUDA_R_16BF, ne00, + src1_ptr, CUDA_R_16BF, ne10, + &beta_f32, dst_bf16.get(), CUDA_R_16BF, ldc, + CUBLAS_COMPUTE_32F, + CUBLAS_GEMM_DEFAULT_TENSOR_OP)); + + const to_fp32_cuda_t to_fp32_cuda = ggml_get_to_fp32_cuda(GGML_TYPE_BF16); + to_fp32_cuda(dst_bf16.get(), dst_dd_i, row_diff*src1_ncols, stream); + } else if (((GGML_CUDA_CC_IS_NVIDIA(cc) && cc >= GGML_CUDA_CC_VOLTA) || GGML_CUDA_CC_IS_AMD(cc)) && use_fp16) { // convert src0 and src1 to fp16, multiply as fp16, convert dst to fp32 ggml_cuda_pool_alloc src0_as_f16(ctx.pool(id)); if (src0->type != GGML_TYPE_F16) { From ff067dbcb9e6ca4ed464d3db999ff8e9c503498b Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 7 Apr 2025 12:25:15 +0300 Subject: [PATCH 07/96] ggml : simplify Arm fp16 CPU logic (ggml/1177) * ggml : simlpify Arm fp16 CPU logic ggml-ci * cont : bring back CUDA/MUSA checks ggml-ci --- ggml/src/ggml-cpu/ggml-cpu-impl.h | 21 ++---------------- ggml/src/ggml-cpu/simd-mappings.h | 8 +++---- ggml/src/ggml-impl.h | 36 +++++++++++++++---------------- 3 files changed, 23 insertions(+), 42 deletions(-) diff --git a/ggml/src/ggml-cpu/ggml-cpu-impl.h b/ggml/src/ggml-cpu/ggml-cpu-impl.h index 7f7d210cbe5d5..8eed9bb57cdb8 100644 --- a/ggml/src/ggml-cpu/ggml-cpu-impl.h +++ b/ggml/src/ggml-cpu/ggml-cpu-impl.h @@ -4,13 +4,13 @@ #include "ggml.h" #include "ggml-impl.h" + #include // load `stdlib.h` before other headers to work around MinGW bug: https://sourceforge.net/p/mingw-w64/bugs/192/ //#include #include #include // memcpy #include // fabsf - #ifdef __cplusplus extern "C" { #endif @@ -69,33 +69,16 @@ struct ggml_compute_params { #endif #if defined(__ARM_FEATURE_SVE) -#include #include #endif -// 16-bit float -// on Arm, we use __fp16 -// on x86, we use uint16_t #if defined(__ARM_NEON) -// if YCM cannot find , make a symbolic link to it, for example: -// -// $ ln -sfn /Library/Developer/CommandLineTools/usr/lib/clang/13.1.6/include/arm_neon.h ./src/ -// -#include - +// ref: https://github.com/ggml-org/llama.cpp/pull/5404 #ifdef _MSC_VER - -typedef uint16_t ggml_fp16_internal_t; - #define ggml_vld1q_u32(w,x,y,z) { ((w) + ((uint64_t)(x) << 32)), ((y) + ((uint64_t)(z) << 32)) } - #else - -typedef __fp16 ggml_fp16_internal_t; - #define ggml_vld1q_u32(w,x,y,z) { (w), (x), (y), (z) } - #endif // _MSC_VER #if !defined(__aarch64__) diff --git a/ggml/src/ggml-cpu/simd-mappings.h b/ggml/src/ggml-cpu/simd-mappings.h index 28aaa1b7189c7..e0b5fc38dd49e 100644 --- a/ggml/src/ggml-cpu/simd-mappings.h +++ b/ggml/src/ggml-cpu/simd-mappings.h @@ -71,7 +71,7 @@ #define GGML_F16x8 float16x8_t #define GGML_F16x8_ZERO vdupq_n_f16(0.0f) #define GGML_F16x8_SET1(x) vdupq_n_f16(x) - #define GGML_F16x8_LOAD(x) vld1q_f16((const ggml_fp16_internal_t *)(x)) + #define GGML_F16x8_LOAD(x) vld1q_f16((const __fp16 *)(x)) #define GGML_F16x8_STORE vst1q_f16 #define GGML_F16x8_FMA(a, b, c) vfmaq_f16(a, b, c) #define GGML_F16x8_ADD vaddq_f16 @@ -99,7 +99,7 @@ #define GGML_F16_VEC_ZERO GGML_F16x8_ZERO #define GGML_F16_VEC_SET1 GGML_F16x8_SET1 #define GGML_F16_VEC_LOAD(p, i) GGML_F16x8_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F16x8_STORE((ggml_fp16_internal_t *)(p), (r)[i]) + #define GGML_F16_VEC_STORE(p, r, i) GGML_F16x8_STORE((__fp16 *)(p), (r)[i]) #define GGML_F16_VEC_FMA GGML_F16x8_FMA #define GGML_F16_VEC_ADD GGML_F16x8_ADD #define GGML_F16_VEC_MUL GGML_F16x8_MUL @@ -114,7 +114,7 @@ #define GGML_F32Cx4 float32x4_t #define GGML_F32Cx4_ZERO vdupq_n_f32(0.0f) #define GGML_F32Cx4_SET1(x) vdupq_n_f32(x) - #define GGML_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16((const ggml_fp16_internal_t *)(x))) + #define GGML_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16((const __fp16 *)(x))) #define GGML_F32Cx4_STORE(x, y) vst1_f16(x, vcvt_f16_f32(y)) #define GGML_F32Cx4_FMA(a, b, c) vfmaq_f32(a, b, c) #define GGML_F32Cx4_ADD vaddq_f32 @@ -125,7 +125,7 @@ #define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO #define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 #define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE((ggml_fp16_internal_t *)(p), r[i]) + #define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE((__fp16 *)(p), r[i]) #define GGML_F16_VEC_FMA GGML_F32Cx4_FMA #define GGML_F16_VEC_ADD GGML_F32Cx4_ADD #define GGML_F16_VEC_MUL GGML_F32Cx4_MUL diff --git a/ggml/src/ggml-impl.h b/ggml/src/ggml-impl.h index be2e3fc915551..606175fb9241a 100644 --- a/ggml/src/ggml-impl.h +++ b/ggml/src/ggml-impl.h @@ -16,14 +16,6 @@ #include #endif // __ARM_FEATURE_SVE -#if defined(__ARM_NEON) && !defined(__CUDACC__) && !defined(__MUSACC__) -// if YCM cannot find , make a symbolic link to it, for example: -// -// $ ln -sfn /Library/Developer/CommandLineTools/usr/lib/clang/13.1.6/include/arm_neon.h ./src/ -// -#include -#endif - #if defined(__F16C__) #include #endif @@ -311,29 +303,35 @@ GGML_API void ggml_aligned_free(void * ptr, size_t size); // FP16 to FP32 conversion -#if defined(__ARM_NEON) - #if defined(_MSC_VER) || (defined(__CUDACC__) && __CUDACC_VER_MAJOR__ <= 11) - typedef uint16_t ggml_fp16_internal_t; - #else - typedef __fp16 ggml_fp16_internal_t; - #endif -#endif +// 16-bit float +// on Arm, we use __fp16 +// on x86, we use uint16_t +// +// for old CUDA compilers (<= 11), we use uint16_t: ref https://github.com/ggml-org/llama.cpp/pull/10616 +// for MUSA compilers , we use uint16_t: ref https://github.com/ggml-org/llama.cpp/pull/11843 +// +#if defined(__ARM_NEON) && !(defined(__CUDACC__) && __CUDACC_VER_MAJOR__ <= 11) && !defined(__MUSACC__) + + // if YCM cannot find , make a symbolic link to it, for example: + // + // $ ln -sfn /Library/Developer/CommandLineTools/usr/lib/clang/13.1.6/include/arm_neon.h ./src/ + // + #include -#if defined(__ARM_NEON) && !defined(_MSC_VER) && !(defined(__CUDACC__) && __CUDACC_VER_MAJOR__ <= 11) #define GGML_COMPUTE_FP16_TO_FP32(x) ggml_compute_fp16_to_fp32(x) #define GGML_COMPUTE_FP32_TO_FP16(x) ggml_compute_fp32_to_fp16(x) #define GGML_FP16_TO_FP32(x) ggml_compute_fp16_to_fp32(x) static inline float ggml_compute_fp16_to_fp32(ggml_fp16_t h) { - ggml_fp16_internal_t tmp; + __fp16 tmp; memcpy(&tmp, &h, sizeof(ggml_fp16_t)); return (float)tmp; } static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) { ggml_fp16_t res; - ggml_fp16_internal_t tmp = f; + __fp16 tmp = f; memcpy(&res, &tmp, sizeof(ggml_fp16_t)); return res; } @@ -485,7 +483,7 @@ GGML_API void ggml_aligned_free(void * ptr, size_t size); #define GGML_COMPUTE_FP16_TO_FP32(x) ggml_compute_fp16_to_fp32(x) #define GGML_COMPUTE_FP32_TO_FP16(x) ggml_compute_fp32_to_fp16(x) -#endif // defined(__ARM_NEON) && (!defined(__MSC_VER) +#endif // defined(__ARM_NEON) && !(defined(__CUDACC__) && __CUDACC_VER_MAJOR__ <= 11) && !defined(__MUSACC__) // precomputed f32 table for f16 (256 KB) // defined in ggml.c, initialized in ggml_init() From a4e46e28f99d7f64f38d8328cdb6bee5a3a1cd03 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 7 Apr 2025 12:32:39 +0300 Subject: [PATCH 08/96] sync : ggml ggml-ci --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 88b3d0eed7d59..e096778bfda55 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -f06264eda2e2bf6e814db5a32bbf42e0b2b1ed98 +70e85f61f1fdcd1064a1e032ff564d5b5e67560c From 1a1ab7e7a4a9b6e6440c1d9965d2b9d1b7e7dafb Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 7 Apr 2025 13:18:07 +0300 Subject: [PATCH 09/96] cuda : fix HIP and MUSA BF16 (#0) ggml-ci --- ggml/src/ggml-cuda/convert.cu | 8 +------- ggml/src/ggml-cuda/vendors/hip.h | 1 + ggml/src/ggml-cuda/vendors/musa.h | 1 + 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ggml/src/ggml-cuda/convert.cu b/ggml/src/ggml-cuda/convert.cu index 2681c42ebecb9..a224ec0e12ddb 100644 --- a/ggml/src/ggml-cuda/convert.cu +++ b/ggml/src/ggml-cuda/convert.cu @@ -579,13 +579,7 @@ static __global__ void convert_unary(const void * __restrict__ vx, dst_t * __res const src_t * x = (const src_t *) vx; - if constexpr (std::is_same_v) { - y[i] = __bfloat162float(x[i]); - } else if constexpr (std::is_same_v && std::is_same_v) { - y[i] = (float)x[i]; - } else { - y[i] = x[i]; - } + y[i] = float(x[i]); } template diff --git a/ggml/src/ggml-cuda/vendors/hip.h b/ggml/src/ggml-cuda/vendors/hip.h index 3983ce5b423c0..420b41b8d652d 100644 --- a/ggml/src/ggml-cuda/vendors/hip.h +++ b/ggml/src/ggml-cuda/vendors/hip.h @@ -20,6 +20,7 @@ #define CUBLAS_STATUS_SUCCESS HIPBLAS_STATUS_SUCCESS #define CUBLAS_TF32_TENSOR_OP_MATH 0 #define CUDA_R_16F HIPBLAS_R_16F +#define CUDA_R_16BF HIPBLAS_R_16B #define CUDA_R_32F HIPBLAS_R_32F #define CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED hipDeviceAttributeVirtualMemoryManagementSupported #define CU_MEM_ALLOC_GRANULARITY_RECOMMENDED hipMemAllocationGranularityRecommended diff --git a/ggml/src/ggml-cuda/vendors/musa.h b/ggml/src/ggml-cuda/vendors/musa.h index f2d55796e7874..937779a90af6e 100644 --- a/ggml/src/ggml-cuda/vendors/musa.h +++ b/ggml/src/ggml-cuda/vendors/musa.h @@ -15,6 +15,7 @@ #define CUBLAS_STATUS_SUCCESS MUBLAS_STATUS_SUCCESS #define CUBLAS_TF32_TENSOR_OP_MATH MUBLAS_MATH_MODE_DEFAULT #define CUDA_R_16F MUSA_R_16F +#define CUDA_R_16BF MUSA_R_16BF #define CUDA_R_32F MUSA_R_32F #define cublasComputeType_t cudaDataType_t #define cublasCreate mublasCreate From 4ccea213bc629c4eef7b520f7f6c59ce9bbdaca0 Mon Sep 17 00:00:00 2001 From: stduhpf Date: Mon, 7 Apr 2025 17:47:08 +0200 Subject: [PATCH 10/96] hellaswag: display estimated score confidence interval (#12797) --- examples/perplexity/perplexity.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/perplexity/perplexity.cpp b/examples/perplexity/perplexity.cpp index 8c413f7d66e6d..175f2804b5da0 100644 --- a/examples/perplexity/perplexity.cpp +++ b/examples/perplexity/perplexity.cpp @@ -851,7 +851,7 @@ static void hellaswag_score(llama_context * ctx, const common_params & params) { LOG_INF("%s : calculating hellaswag score over selected tasks.\n", __func__); - LOG("\ntask\tacc_norm\n"); + LOG("\ntask\tacc_norm\t95%% confidence interval\n"); double acc = 0.0f; @@ -985,8 +985,22 @@ static void hellaswag_score(llama_context * ctx, const common_params & params) { acc += 1.0; } - // Print the accumulated accuracy mean x 100 - LOG("%zu\t%.8lf\n", i + 1, acc/double(i + 1)*100.0); + double freq = acc / double(i + 1); + + const double za = 1.95996398454; + + // // Wald normal approx + // double conf =za*sqrt(freq*(1-freq)/double(i + 1)); + // LOG("%zu\t%.8lf +/- %.8lf\n", i + 1, freq*100.0, conf*100.0); + + // Wilson score interval, more accurate + double z = za * za / double(i + 1); + double cnf = z * sqrt(double(i + 1) * (4.0 * freq * (1 - freq) + z)) / (za + za); + double a = (freq + z * 0.5 - cnf) / (1.0 + z); + double b = (freq + z * 0.5 + cnf) / (1.0 + z); + + // Print the accumulated accuracy mean x 100 and confidence interval + LOG("%zu\t%3.8lf%%\t[%3.4lf%%, %3.4lf%%]\n", i + 1, freq * 100.0, a * 100.0, b * 100.0); } i0 = i1 - 1; From 82974011f312057b446c27267105bd7ad3810599 Mon Sep 17 00:00:00 2001 From: lhez Date: Mon, 7 Apr 2025 13:22:54 -0700 Subject: [PATCH 11/96] opencl: better identify Adreno GPU (#12760) --- ggml/src/ggml-opencl/ggml-opencl.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ggml/src/ggml-opencl/ggml-opencl.cpp b/ggml/src/ggml-opencl/ggml-opencl.cpp index 6806c13974323..b8b5cbd3e2b69 100644 --- a/ggml/src/ggml-opencl/ggml-opencl.cpp +++ b/ggml/src/ggml-opencl/ggml-opencl.cpp @@ -415,6 +415,7 @@ static ggml_backend_opencl_context * ggml_cl2_init(ggml_backend_dev_t dev) { unsigned number; cl_device_type type; char name[128]; + char version[128]; }; enum { NPLAT = 16, NDEV = 16 }; @@ -455,6 +456,7 @@ static ggml_backend_opencl_context * ggml_cl2_init(ggml_backend_dev_t dev) { d->platform = p; CL_CHECK(clGetDeviceInfo(d->id, CL_DEVICE_NAME, sizeof(d->name), &d->name, NULL)); CL_CHECK(clGetDeviceInfo(d->id, CL_DEVICE_TYPE, sizeof(d->type), &d->type, NULL)); + CL_CHECK(clGetDeviceInfo(d->id, CL_DEVICE_VERSION, sizeof(d->version), &d->version, NULL)); if (p->default_device == NULL && d->type == CL_DEVICE_TYPE_GPU) { p->default_device = d; @@ -547,7 +549,7 @@ static ggml_backend_opencl_context * ggml_cl2_init(ggml_backend_dev_t dev) { } GGML_LOG_INFO("ggml_opencl: selecting platform: '%s'\n", default_device->platform->name); - GGML_LOG_INFO("ggml_opencl: selecting device: '%s'\n", default_device->name); + GGML_LOG_INFO("ggml_opencl: selecting device: '%s (%s)'\n", default_device->name, default_device->version); if (default_device->type != CL_DEVICE_TYPE_GPU) { GGML_LOG_WARN("ggml_opencl: warning, not a GPU: '%s'.\n", default_device->name); } @@ -556,9 +558,15 @@ static ggml_backend_opencl_context * ggml_cl2_init(ggml_backend_dev_t dev) { dev_ctx->device = default_device->id; backend_ctx->device = default_device->id; - if (strstr(default_device->name, "Adreno")) { + if (strstr(default_device->name, "Adreno") || + strstr(default_device->name, "Qualcomm") || + strstr(default_device->version, "Adreno")) { backend_ctx->gpu_family = GPU_FAMILY::ADRENO; - backend_ctx->adreno_gen = get_adreno_gpu_gen(default_device->name); + // Usually device version contains the detailed device name + backend_ctx->adreno_gen = get_adreno_gpu_gen(default_device->version); + if (backend_ctx->adreno_gen == ADRENO_GPU_GEN::ADRENO_UNKNOWN) { + backend_ctx->adreno_gen = get_adreno_gpu_gen(default_device->name); + } // Use wave size of 64 for all Adreno GPUs. backend_ctx->adreno_wave_size = 64; From 1466621e738779eefe1bb672e17dc55d63d166bb Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 7 Apr 2025 23:06:44 +0200 Subject: [PATCH 12/96] llama : Support llama 4 text-only (#12791) * llama4 conversion * initial support, no chat template * clean up a bit * fix tokenizer conversion * correct hparams * try this * fix shexp * ffn_inp_normed * chat template * clean up model conversion * add_bos * add scale_before_ffn * fix order * weight_before_ffn * llm_graph_input_attn_temp * add chunk attn mask * build_inp_attn_scale() * add comment about ggml_repeat * clarify comments * fix build --- convert_hf_to_gguf.py | 68 +++++++++++++- convert_hf_to_gguf_update.py | 1 + gguf-py/gguf/constants.py | 26 ++++++ gguf-py/gguf/gguf_writer.py | 3 + include/llama.h | 1 + models/ggml-vocab-llama4.gguf.inp | 112 ++++++++++++++++++++++ models/ggml-vocab-llama4.gguf.out | 46 +++++++++ src/llama-arch.cpp | 31 ++++++ src/llama-arch.h | 2 + src/llama-chat.cpp | 14 ++- src/llama-chat.h | 1 + src/llama-graph.cpp | 68 +++++++++++++- src/llama-graph.h | 18 ++++ src/llama-hparams.h | 8 ++ src/llama-model.cpp | 150 +++++++++++++++++++++++++++--- src/llama-model.h | 2 + src/llama-vocab.cpp | 3 +- 17 files changed, 532 insertions(+), 22 deletions(-) create mode 100644 models/ggml-vocab-llama4.gguf.inp create mode 100644 models/ggml-vocab-llama4.gguf.out diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index cfe94deaf76ef..9549900206b48 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -714,6 +714,9 @@ def get_vocab_base_pre(self, tokenizer) -> str: if chkhsh == "96a5f08be6259352137b512d4157e333e21df7edd3fcd152990608735a65b224": # ref: https://huggingface.co/inclusionAI/Ling-lite res = "bailingmoe" + if chkhsh == "d353350c764d8c3b39c763113960e4fb4919bea5fbf208a0e3b22e8469dc7406": + # ref: https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct + res = "llama4" if res is None: logger.warning("\n") @@ -1608,6 +1611,7 @@ def prepare_tensors(self): @Model.register("LLaMAForCausalLM", "LlamaForCausalLM", "MistralForCausalLM", "MixtralForCausalLM") class LlamaModel(Model): model_arch = gguf.MODEL_ARCH.LLAMA + undo_permute = True def set_vocab(self): try: @@ -1672,10 +1676,11 @@ def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iter n_head = self.hparams["num_attention_heads"] n_kv_head = self.hparams.get("num_key_value_heads") - if name.endswith(("q_proj.weight", "q_proj.bias")): - data_torch = LlamaModel.permute(data_torch, n_head, n_head) - if name.endswith(("k_proj.weight", "k_proj.bias")): - data_torch = LlamaModel.permute(data_torch, n_head, n_kv_head) + if self.undo_permute: + if name.endswith(("q_proj.weight", "q_proj.bias")): + data_torch = LlamaModel.permute(data_torch, n_head, n_head) + if name.endswith(("k_proj.weight", "k_proj.bias")): + data_torch = LlamaModel.permute(data_torch, n_head, n_kv_head) # process the experts separately if name.find("block_sparse_moe.experts") != -1: @@ -1752,6 +1757,61 @@ def prepare_tensors(self): raise ValueError(f"Unprocessed experts: {experts}") +@Model.register("Llama4ForConditionalGeneration") +class Llama4Model(LlamaModel): + model_arch = gguf.MODEL_ARCH.LLAMA4 + has_vision: bool = False + undo_permute = False + + # TODO @ngxson : avoid duplicate this code everywhere by at least support "text_config" + # same with llama, but we need to merge the text_config into the root level of hparams + def __init__(self, *args, **kwargs): + hparams = kwargs["hparams"] if "hparams" in kwargs else Model.load_hparams(args[0]) + if "text_config" in hparams: + hparams = {**hparams, **hparams["text_config"]} + kwargs["hparams"] = hparams + super().__init__(*args, **kwargs) + if "vision_config" in hparams: + logger.info("Has vision encoder, but it will be ignored") + self.has_vision = True + # IMPORTANT: the normal "intermediate_size" is renamed to "intermediate_size_mlp", we need to undo this + self.hparams["intermediate_size_moe"] = self.hparams["intermediate_size"] + self.hparams["intermediate_size"] = self.hparams["intermediate_size_mlp"] + + def set_vocab(self): + self._set_vocab_gpt2() + self.gguf_writer.add_add_bos_token(True) + + def set_gguf_parameters(self): + super().set_gguf_parameters() + self.gguf_writer.add_interleave_moe_layer_step(self.hparams["interleave_moe_layer_step"]) + self.gguf_writer.add_expert_feed_forward_length(self.hparams["intermediate_size_moe"]) + + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None): + name = name.replace("language_model.", "") + name = name.replace("feed_forward.", "mlp.") # a bit hacky for now + name = name.replace(".router.weight", ".gate.weight") # a bit hacky for now + + # split the gate_up into gate and up + if "gate_up_proj" in name: + name_up = name.replace("gate_up_proj", "up_proj.weight") + name_gate = name.replace("gate_up_proj", "gate_proj.weight") + dim_half = data_torch.shape[-1] // 2 + gate_proj_weight, up_proj_weight = data_torch.transpose(-1, -2).split(dim_half, dim=-2) + return [ + (self.map_tensor_name(name_gate), gate_proj_weight), + (self.map_tensor_name(name_up), up_proj_weight) + ] + + if name.endswith("down_proj"): + name += ".weight" + data_torch = data_torch.transpose(-1, -2) + + if "multi_modal_projector" in name or "vision_model" in name: + return [] + return super().modify_tensors(data_torch, name, bid) + + @Model.register("Mistral3ForConditionalGeneration") class Mistral3Model(LlamaModel): model_arch = gguf.MODEL_ARCH.LLAMA diff --git a/convert_hf_to_gguf_update.py b/convert_hf_to_gguf_update.py index 1b86f4c90acf6..ce6104da4a0e9 100755 --- a/convert_hf_to_gguf_update.py +++ b/convert_hf_to_gguf_update.py @@ -113,6 +113,7 @@ class TOKENIZER_TYPE(IntEnum): {"name": "superbpe", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/UW/OLMo2-8B-SuperBPE-t180k", }, {"name": "trillion", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/trillionlabs/Trillion-7B-preview", }, {"name": "bailingmoe", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/inclusionAI/Ling-lite", }, + {"name": "llama4", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct", }, ] diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 3a52cfd1e39ac..d4f4e117993e2 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -116,6 +116,7 @@ class LLM: RESIDUAL_SCALE = "{arch}.residual_scale" EMBEDDING_SCALE = "{arch}.embedding_scale" TOKEN_SHIFT_COUNT = "{arch}.token_shift_count" + INTERLEAVE_MOE_LAYER_STEP = "{arch}.interleave_moe_layer_step" class Attention: HEAD_COUNT = "{arch}.attention.head_count" @@ -227,6 +228,7 @@ class GGUFType: class MODEL_ARCH(IntEnum): LLAMA = auto() + LLAMA4 = auto() DECI = auto() FALCON = auto() BAICHUAN = auto() @@ -431,6 +433,7 @@ class MODEL_TENSOR(IntEnum): MODEL_ARCH_NAMES: dict[MODEL_ARCH, str] = { MODEL_ARCH.LLAMA: "llama", + MODEL_ARCH.LLAMA4: "llama4", MODEL_ARCH.DECI: "deci", MODEL_ARCH.FALCON: "falcon", MODEL_ARCH.BAICHUAN: "baichuan", @@ -654,6 +657,29 @@ class MODEL_TENSOR(IntEnum): MODEL_TENSOR.FFN_DOWN_EXP, MODEL_TENSOR.FFN_UP_EXP, ], + MODEL_ARCH.LLAMA4: [ + MODEL_TENSOR.TOKEN_EMBD, + MODEL_TENSOR.OUTPUT_NORM, + MODEL_TENSOR.OUTPUT, + MODEL_TENSOR.ROPE_FREQS, + MODEL_TENSOR.ATTN_NORM, + MODEL_TENSOR.ATTN_Q, + MODEL_TENSOR.ATTN_K, + MODEL_TENSOR.ATTN_V, + MODEL_TENSOR.ATTN_OUT, + MODEL_TENSOR.ATTN_ROT_EMBD, + MODEL_TENSOR.FFN_GATE_INP, + MODEL_TENSOR.FFN_NORM, + MODEL_TENSOR.FFN_GATE, + MODEL_TENSOR.FFN_DOWN, + MODEL_TENSOR.FFN_UP, + MODEL_TENSOR.FFN_GATE_EXP, + MODEL_TENSOR.FFN_DOWN_EXP, + MODEL_TENSOR.FFN_UP_EXP, + MODEL_TENSOR.FFN_GATE_SHEXP, + MODEL_TENSOR.FFN_DOWN_SHEXP, + MODEL_TENSOR.FFN_UP_SHEXP, + ], MODEL_ARCH.DECI: [ MODEL_TENSOR.TOKEN_EMBD, MODEL_TENSOR.OUTPUT_NORM, diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index af8b388dfaba5..485550aad6da4 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -746,6 +746,9 @@ def add_wkv_head_size(self, size: int) -> None: def add_token_shift_count(self, count: int) -> None: self.add_uint32(Keys.LLM.TOKEN_SHIFT_COUNT.format(arch=self.arch), count) + def add_interleave_moe_layer_step(self, value: int) -> None: + self.add_uint32(Keys.LLM.INTERLEAVE_MOE_LAYER_STEP.format(arch=self.arch), value) + def add_layer_norm_eps(self, value: float) -> None: self.add_float32(Keys.Attention.LAYERNORM_EPS.format(arch=self.arch), value) diff --git a/include/llama.h b/include/llama.h index fca2b034ba270..5fd99f4c8b99e 100644 --- a/include/llama.h +++ b/include/llama.h @@ -110,6 +110,7 @@ extern "C" { LLAMA_VOCAB_PRE_TYPE_SUPERBPE = 30, LLAMA_VOCAB_PRE_TYPE_TRILLION = 31, LLAMA_VOCAB_PRE_TYPE_BAILINGMOE = 32, + LLAMA_VOCAB_PRE_TYPE_LLAMA4 = 33, }; enum llama_rope_type { diff --git a/models/ggml-vocab-llama4.gguf.inp b/models/ggml-vocab-llama4.gguf.inp new file mode 100644 index 0000000000000..9baf7d77ae6b5 --- /dev/null +++ b/models/ggml-vocab-llama4.gguf.inp @@ -0,0 +1,112 @@ +ied 4 ½ months +__ggml_vocab_test__ +Führer +__ggml_vocab_test__ + +__ggml_vocab_test__ + +__ggml_vocab_test__ + +__ggml_vocab_test__ + +__ggml_vocab_test__ + +__ggml_vocab_test__ + + +__ggml_vocab_test__ + + + +__ggml_vocab_test__ + + + + +__ggml_vocab_test__ + + +__ggml_vocab_test__ +Hello world +__ggml_vocab_test__ + Hello world +__ggml_vocab_test__ +Hello World +__ggml_vocab_test__ + Hello World +__ggml_vocab_test__ + Hello World! +__ggml_vocab_test__ +Hello, world! +__ggml_vocab_test__ + Hello, world! +__ggml_vocab_test__ + this is 🦙.cpp +__ggml_vocab_test__ +w048 7tuijk dsdfhu +__ggml_vocab_test__ +нещо на Български +__ggml_vocab_test__ +កាន់តែពិសេសអាចខលចេញ +__ggml_vocab_test__ +🚀 (normal) 😶‍🌫️ (multiple emojis concatenated) ✅ (only emoji that has its own token) +__ggml_vocab_test__ +Hello +__ggml_vocab_test__ + Hello +__ggml_vocab_test__ + Hello +__ggml_vocab_test__ + Hello +__ggml_vocab_test__ + Hello +__ggml_vocab_test__ + Hello + Hello +__ggml_vocab_test__ + ( +__ggml_vocab_test__ + + = +__ggml_vocab_test__ +' era +__ggml_vocab_test__ +Hello, y'all! How are you 😁 ?我想在apple工作1314151天~ +__ggml_vocab_test__ +!!!!!! +__ggml_vocab_test__ +3 +__ggml_vocab_test__ +33 +__ggml_vocab_test__ +333 +__ggml_vocab_test__ +3333 +__ggml_vocab_test__ +33333 +__ggml_vocab_test__ +333333 +__ggml_vocab_test__ +3333333 +__ggml_vocab_test__ +33333333 +__ggml_vocab_test__ +333333333 +__ggml_vocab_test__ +Cửa Việt +__ggml_vocab_test__ + discards +__ggml_vocab_test__ + + + + + + + + + + + +🚀 (normal) 😶‍🌫️ (multiple emojis concatenated) ✅ 🦙🦙 3 33 333 3333 33333 333333 3333333 33333333 3.3 3..3 3...3 កាន់តែពិសេសអាច😁 ?我想在apple工作1314151天~ ------======= нещо на Български ''''''```````""""......!!!!!!?????? I've been 'told he's there, 'RE you sure? 'M not sure I'll make it, 'D you like some tea? We'Ve a'lL +__ggml_vocab_test__ diff --git a/models/ggml-vocab-llama4.gguf.out b/models/ggml-vocab-llama4.gguf.out new file mode 100644 index 0000000000000..7ca46ce597b85 --- /dev/null +++ b/models/ggml-vocab-llama4.gguf.out @@ -0,0 +1,46 @@ + 1190 220 32 220 18215 7112 + 50 16800 258 + + 220 + 256 + 277 + 197 + 198 + 368 + 2946 + 3271 + 19873 3817 + 39715 3817 + 19873 7353 + 39715 7353 + 39715 7353 13 + 19873 24 3817 13 + 39715 24 3817 13 + 544 373 9522 112 247 26 36315 + 99 39923 220 35 9607 21498 21470 3679 9433 + 1595 7653 633 79829 34051 1636 + 8755 102595 115960 21125 148305 96819 102816 39048 14105 22528 160234 + 114590 222 330 14879 21 51358 127 12817 93293 117 24204 330 68239 881 120327 170428 21 89101 330 7384 88230 511 947 1492 3742 7233 21 + 19873 + 39715 + 220 39715 + 256 39715 + 277 39715 + 277 39715 198 277 39715 + 330 + 198 319 + 19 7359 + 19873 24 386 87799 13 2403 583 650 51358 223 1663 155736 1522 42056 7544 13336 28785 29 4412 20645 + 17931 4959 + 31 + 1922 + 12325 + 12325 31 + 12325 1922 + 12325 12325 + 12325 12325 31 + 12325 12325 1922 + 12325 12325 12325 + 47 19811 12077 + 3260 3579 + 198 7283 51499 191231 20192 3271 3322 9287 2143 17860 114590 222 330 14879 21 51358 127 12817 93293 117 24204 330 68239 881 120327 170428 21 89101 9522 112 247 172394 247 220 31 220 1922 220 12325 220 12325 31 220 12325 1922 220 12325 12325 220 12325 12325 31 220 12325 12325 1922 220 31 26 31 220 31 396 31 220 31 1043 31 117131 102595 115960 21125 148305 96819 102816 80883 223 1663 155736 1522 42056 7544 13336 28785 29 4412 20645 79745 150278 117079 633 79829 34051 1636 25611 41990 109428 1488 91054 24072 17931 4959 29795 9296 16517 1806 481 96 1386 36633 1609 24 481 1109 650 5074 43 481 57 702 5074 27088 2170 536 24 481 48 650 1933 1696 30262 43 1665 19 32818 262 27236 56 diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index 047782e7d0fc8..ac997b963c85a 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -6,6 +6,7 @@ static const std::map LLM_ARCH_NAMES = { { LLM_ARCH_LLAMA, "llama" }, + { LLM_ARCH_LLAMA4, "llama4" }, { LLM_ARCH_DECI, "deci" }, { LLM_ARCH_FALCON, "falcon" }, { LLM_ARCH_GROK, "grok" }, @@ -114,6 +115,7 @@ static const std::map LLM_KV_NAMES = { { LLM_KV_RESIDUAL_SCALE, "%s.residual_scale" }, { LLM_KV_EMBEDDING_SCALE, "%s.embedding_scale" }, { LLM_KV_TOKEN_SHIFT_COUNT, "%s.token_shift_count" }, + { LLM_KV_INTERLEAVE_MOE_LAYER_STEP, "%s.interleave_moe_layer_step" }, { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" }, { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" }, @@ -233,6 +235,35 @@ static const std::map> LLM_TENSOR_N { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" }, }, }, + { + LLM_ARCH_LLAMA4, + { + { LLM_TENSOR_TOKEN_EMBD, "token_embd" }, + { LLM_TENSOR_OUTPUT_NORM, "output_norm" }, + { LLM_TENSOR_OUTPUT, "output" }, + { LLM_TENSOR_ROPE_FREQS, "rope_freqs" }, + { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" }, + { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" }, + { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" }, + { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" }, + { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" }, + { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" }, + { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" }, + { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" }, + { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" }, + { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" }, + { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" }, + { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" }, + { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" }, + { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" }, + { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" }, + { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" }, + { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" }, + { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" }, + { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" }, + { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" }, + }, + }, { LLM_ARCH_DECI, { diff --git a/src/llama-arch.h b/src/llama-arch.h index 297cfa4dae571..42e4a3ef95e35 100644 --- a/src/llama-arch.h +++ b/src/llama-arch.h @@ -10,6 +10,7 @@ enum llm_arch { LLM_ARCH_LLAMA, + LLM_ARCH_LLAMA4, LLM_ARCH_DECI, LLM_ARCH_FALCON, LLM_ARCH_BAICHUAN, @@ -118,6 +119,7 @@ enum llm_kv { LLM_KV_RESIDUAL_SCALE, LLM_KV_EMBEDDING_SCALE, LLM_KV_TOKEN_SHIFT_COUNT, + LLM_KV_INTERLEAVE_MOE_LAYER_STEP, LLM_KV_ATTENTION_HEAD_COUNT, LLM_KV_ATTENTION_HEAD_COUNT_KV, diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index dd27a381423df..721faa4e8147e 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -61,6 +61,7 @@ static const std::map LLM_CHAT_TEMPLATES = { { "megrez", LLM_CHAT_TEMPLATE_MEGREZ }, { "yandex", LLM_CHAT_TEMPLATE_YANDEX }, { "bailing", LLM_CHAT_TEMPLATE_BAILING }, + { "llama4", LLM_CHAT_TEMPLATE_LLAMA4 }, }; llm_chat_template llm_chat_template_from_str(const std::string & name) { @@ -174,6 +175,8 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { return LLM_CHAT_TEMPLATE_YANDEX; } else if (tmpl_contains("ASSISTANT") && tmpl_contains("'HUMAN'")) { return LLM_CHAT_TEMPLATE_BAILING; + } else if (tmpl_contains("<|header_start|>") && tmpl_contains("<|header_end|>")) { + return LLM_CHAT_TEMPLATE_LLAMA4; } return LLM_CHAT_TEMPLATE_UNKNOWN; } @@ -608,7 +611,16 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "ASSISTANT"; } - } else { + } else if (tmpl == LLM_CHAT_TEMPLATE_LLAMA4) { + // Llama 4 + for (auto message : chat) { + std::string role(message->role); + ss << "<|header_start|>" << role << "<|header_end|>\n\n" << trim(message->content) << "<|eot|>"; + } + if (add_ass) { + ss << "<|header_start|>assistant<|header_end|>\n\n"; + } + } else { // template not supported return -1; } diff --git a/src/llama-chat.h b/src/llama-chat.h index 0e0bd772c2eac..34537ca21e46e 100644 --- a/src/llama-chat.h +++ b/src/llama-chat.h @@ -40,6 +40,7 @@ enum llm_chat_template { LLM_CHAT_TEMPLATE_MEGREZ, LLM_CHAT_TEMPLATE_YANDEX, LLM_CHAT_TEMPLATE_BAILING, + LLM_CHAT_TEMPLATE_LLAMA4, LLM_CHAT_TEMPLATE_UNKNOWN, }; diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index cec203df49268..c3469177e091c 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -59,6 +59,22 @@ void llm_graph_input_pos::set_input(const llama_ubatch * ubatch) { } } +void llm_graph_input_attn_temp::set_input(const llama_ubatch * ubatch) { + if (ubatch->pos && attn_scale) { + const int64_t n_tokens = ubatch->n_tokens; + + std::vector attn_scale_data(n_tokens, 0.0f); + for (int i = 0; i < n_tokens; ++i) { + const float pos = ubatch->pos[i]; + attn_scale_data[i] = std::log( + std::floor((pos + 1.0f) / n_attn_temp_floor_scale) + 1.0 + ) * f_attn_temp_scale + 1.0; + } + + ggml_backend_tensor_set(attn_scale, attn_scale_data.data(), 0, n_tokens*n_pos_per_token*ggml_element_size(attn_scale)); + } +} + void llm_graph_input_pos_bucket::set_input(const llama_ubatch * ubatch) { if (pos_bucket) { const int64_t n_tokens = ubatch->n_tokens; @@ -458,9 +474,17 @@ void llm_graph_input_attn_kv_unified::set_input(const llama_ubatch * ubatch) { } // may need to cut off old tokens for sliding window + // TODO @ngxson : we are currently re-using the swa logic to store the chunked mask, we should rename SWA to something more generic like "aux mask" if (data_swa) { - if (pos - kv_self->cells[i].pos >= (int32_t)hparams.n_swa) { - f = -INFINITY; + if (hparams.n_attn_chunk) { + llama_pos pos_chunk_start = (pos / hparams.n_attn_chunk) * hparams.n_attn_chunk; + if (kv_self->cells[i].pos < pos_chunk_start || pos < pos_chunk_start) { + f = -INFINITY; + } + } else { + if (pos - kv_self->cells[i].pos >= (int32_t)hparams.n_swa) { + f = -INFINITY; + } } data_swa[h*(n_kv*n_tokens) + s*(n_kv*n_seq_tokens) + j*n_kv + i] = f; } @@ -812,8 +836,9 @@ ggml_tensor * llm_graph_context::build_moe_ffn( float w_scale, llama_expert_gating_func_type gating_op, int il) const { - int64_t n_embd = cur->ne[0]; - int64_t n_tokens = cur->ne[1]; + const int64_t n_embd = cur->ne[0]; + const int64_t n_tokens = cur->ne[1]; + const bool weight_before_ffn = arch == LLM_ARCH_LLAMA4; // for llama4, we apply the sigmoid-ed weights before the FFN ggml_tensor * logits = build_lora_mm(gate_inp, cur); // [n_expert, n_tokens] cb(logits, "ffn_moe_logits", il); @@ -841,6 +866,12 @@ ggml_tensor * llm_graph_context::build_moe_ffn( cb(selection_probs, "ffn_moe_probs_biased", il); } + // llama4 doesn't have exp_probs_b, and sigmoid is only used after top_k + // see: https://github.com/meta-llama/llama-models/blob/699a02993512fb36936b1b0741e13c06790bcf98/models/llama4/moe.py#L183-L198 + if (arch == LLM_ARCH_LLAMA4) { + selection_probs = logits; + } + // select experts ggml_tensor * selected_experts = ggml_top_k(ctx0, selection_probs, n_expert_used); // [n_expert_used, n_tokens] cb(selected_experts->src[0], "ffn_moe_argsort", il); @@ -867,6 +898,15 @@ ggml_tensor * llm_graph_context::build_moe_ffn( } cur = ggml_reshape_3d(ctx0, cur, n_embd, 1, n_tokens); + + if (weight_before_ffn) { + // TODO: this is a workaround as we don't yet have a repeat op that takes custom dim (ggml_repeat_4d) + ggml_tensor * repeated = ggml_new_tensor_3d(ctx0, cur->type, n_embd, n_expert_used, n_tokens); + repeated = ggml_repeat(ctx0, cur, repeated); // [n_embd, n_expert_used, n_tokens] + cur = ggml_mul(ctx0, repeated, weights); + cb(cur, "ffn_moe_weighted", il); + } + ggml_tensor * up = build_lora_mm_id(up_exps, cur, selected_experts); // [n_ff, n_expert_used, n_tokens] cb(up, "ffn_moe_up", il); @@ -894,7 +934,10 @@ ggml_tensor * llm_graph_context::build_moe_ffn( ggml_tensor * experts = build_lora_mm_id(down_exps, par, selected_experts); // [n_embd, n_expert_used, n_tokens] cb(experts, "ffn_moe_down", il); - experts = ggml_mul(ctx0, experts, weights); + if (!weight_before_ffn) { + experts = ggml_mul(ctx0, experts, weights); + cb(cur, "ffn_moe_weighted", il); + } // aggregate experts ggml_tensor * moe_out = nullptr; @@ -914,6 +957,8 @@ ggml_tensor * llm_graph_context::build_moe_ffn( moe_out = ggml_cont(ctx0, moe_out); } + cb(moe_out, "ffn_moe_out", il); + return moe_out; } @@ -981,6 +1026,19 @@ ggml_tensor * llm_graph_context::build_inp_pos() const { return cur; } +ggml_tensor * llm_graph_context::build_inp_attn_scale() const { + auto inp = std::make_unique(n_pos_per_token(), hparams.n_attn_temp_floor_scale, hparams.f_attn_temp_scale); + + auto & cur = inp->attn_scale; + + cur = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 1, 1, n_tokens*n_pos_per_token()); + ggml_set_input(cur); + + res->add_input(std::move(inp)); + + return cur; +} + ggml_tensor * llm_graph_context::build_inp_out_ids() const { auto inp = std::make_unique(hparams, cparams, n_outputs); diff --git a/src/llama-graph.h b/src/llama-graph.h index bdf19ed015e35..5b6618f9e55f1 100644 --- a/src/llama-graph.h +++ b/src/llama-graph.h @@ -100,6 +100,23 @@ class llm_graph_input_pos : public llm_graph_input_i { const int64_t n_pos_per_token = 1; }; +// temperature tuning, used by llama4 +class llm_graph_input_attn_temp : public llm_graph_input_i { +public: + llm_graph_input_attn_temp(int64_t n_pos_per_token, uint32_t n_attn_temp_floor_scale, float f_attn_temp_scale) + : n_pos_per_token(n_pos_per_token), n_attn_temp_floor_scale(n_attn_temp_floor_scale), f_attn_temp_scale(f_attn_temp_scale) {} + virtual ~llm_graph_input_attn_temp() = default; + + void set_input(const llama_ubatch * ubatch) override; + + ggml_tensor * attn_scale = nullptr; // F32 [n_batch] + + const int64_t n_pos_per_token = 1; + + const uint32_t n_attn_temp_floor_scale; + const float f_attn_temp_scale; +}; + class llm_graph_input_pos_bucket : public llm_graph_input_i { public: llm_graph_input_pos_bucket(const llama_hparams & hparams) : hparams(hparams) {} @@ -470,6 +487,7 @@ struct llm_graph_context { ggml_tensor * build_inp_embd(ggml_tensor * tok_embd) const; ggml_tensor * build_inp_pos() const; + ggml_tensor * build_inp_attn_scale() const; ggml_tensor * build_inp_out_ids() const; ggml_tensor * build_inp_mean() const; ggml_tensor * build_inp_cls() const; diff --git a/src/llama-hparams.h b/src/llama-hparams.h index bb17ba86dc2fb..4e0b57190a3a7 100644 --- a/src/llama-hparams.h +++ b/src/llama-hparams.h @@ -112,6 +112,14 @@ struct llama_hparams { bool use_alibi = false; bool attn_soft_cap = false; + uint32_t n_moe_layer_step = 0; + bool use_kq_norm = true; + uint32_t n_attn_chunk = 0; + // values below seems to be fixed on llama4 + uint32_t n_no_rope_layer_step = 4; + uint32_t n_attn_temp_floor_scale = 8192; + float f_attn_temp_scale = 0.1; + // needed by encoder-decoder models (e.g. T5, FLAN-T5) // ref: https://github.com/ggerganov/llama.cpp/pull/8141 llama_token dec_start_token_id = LLAMA_TOKEN_NULL; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index ca6e3ab2caeb1..4546e9cf9ba96 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -90,6 +90,8 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_57B_A14B: return "57B.A14B"; case LLM_TYPE_27B: return "27B"; case LLM_TYPE_290B: return "290B"; + case LLM_TYPE_17B_16E: return "17Bx16E (Scout)"; + case LLM_TYPE_17B_128E: return "17Bx128E (Maverick)"; default: return "?B"; } } @@ -550,6 +552,25 @@ void llama_model::load_hparams(llama_model_loader & ml) { } } } break; + case LLM_ARCH_LLAMA4: + { + ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); + ml.get_key(LLM_KV_EXPERT_FEED_FORWARD_LENGTH, hparams.n_ff_exp); + ml.get_key(LLM_KV_INTERLEAVE_MOE_LAYER_STEP, hparams.n_moe_layer_step); + hparams.n_swa_pattern = 4; // pattern: 3 chunked - 1 full + hparams.n_attn_chunk = 8192; // should this be a gguf kv? currently it's the same for Scout and Maverick + hparams.n_swa = 1; // TODO @ngxson : this is added to trigger the SWA branch (we store the chunked attn mask in the SWA tensor), will need to clean this up later + + switch (hparams.n_expert) { + case 16: type = LLM_TYPE_17B_16E; break; + case 128: type = LLM_TYPE_17B_128E; break; + default: type = LLM_TYPE_UNKNOWN; + } + + if (type == LLM_TYPE_17B_128E) { + hparams.use_kq_norm = false; + } + } break; case LLM_ARCH_DECI: { ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); @@ -1690,6 +1711,56 @@ bool llama_model::load_tensors(llama_model_loader & ml) { } } } break; + case LLM_ARCH_LLAMA4: + { + tok_embd = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, 0); + + // output + output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0); + output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED); + + // if output is NULL, init from the input tok embed + if (output == NULL) { + output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED); + } + + GGML_ASSERT(hparams.n_moe_layer_step > 0 && "Llama 4 requires n_moe_layer_step > 0"); + for (int i = 0; i < n_layer; ++i) { + bool is_moe_layer = (i + 1) % hparams.n_moe_layer_step == 0; + + auto & layer = layers[i]; + + layer.attn_norm = create_tensor(tn(LLM_TENSOR_ATTN_NORM, "weight", i), {n_embd}, 0); + + layer.wq = create_tensor(tn(LLM_TENSOR_ATTN_Q, "weight", i), {n_embd, n_embd_head_k * n_head}, 0); + layer.wk = create_tensor(tn(LLM_TENSOR_ATTN_K, "weight", i), {n_embd, n_embd_k_gqa}, 0); + layer.wv = create_tensor(tn(LLM_TENSOR_ATTN_V, "weight", i), {n_embd, n_embd_v_gqa}, 0); + layer.wo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "weight", i), {n_embd_head_k * n_head, n_embd}, 0); + + layer.ffn_norm = create_tensor(tn(LLM_TENSOR_FFN_NORM, "weight", i), {n_embd}, 0); + + layer.rope_freqs = create_tensor(tn(LLM_TENSOR_ROPE_FREQS, "weight", i), {n_rot/2}, TENSOR_NOT_REQUIRED | (i != 0 ? TENSOR_DUPLICATED : 0)); + + if (is_moe_layer) { + int n_ff_exp = hparams.n_ff_exp; + + layer.ffn_gate_inp = create_tensor(tn(LLM_TENSOR_FFN_GATE_INP, "weight", i), {n_embd, n_expert}, 0); + layer.ffn_gate_exps = create_tensor(tn(LLM_TENSOR_FFN_GATE_EXPS, "weight", i), {n_embd, n_ff_exp, n_expert}, 0); + layer.ffn_down_exps = create_tensor(tn(LLM_TENSOR_FFN_DOWN_EXPS, "weight", i), { n_ff_exp, n_embd, n_expert}, 0); + layer.ffn_up_exps = create_tensor(tn(LLM_TENSOR_FFN_UP_EXPS, "weight", i), {n_embd, n_ff_exp, n_expert}, 0); + + // Shared expert + const int64_t n_ff_shexp = n_ff_exp; + layer.ffn_gate_shexp = create_tensor(tn(LLM_TENSOR_FFN_GATE_SHEXP, "weight", i), { n_embd, n_ff_shexp}, 0); + layer.ffn_down_shexp = create_tensor(tn(LLM_TENSOR_FFN_DOWN_SHEXP, "weight", i), {n_ff_shexp, n_embd }, 0); + layer.ffn_up_shexp = create_tensor(tn(LLM_TENSOR_FFN_UP_SHEXP, "weight", i), { n_embd, n_ff_shexp}, 0); + } else { + layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); + layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), { n_ff, n_embd}, 0); + layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); + } + } + } break; case LLM_ARCH_DECI: { tok_embd = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, 0); @@ -4203,12 +4274,22 @@ struct llm_build_llama : public llm_graph_context { // inp_pos - contains the positions ggml_tensor * inp_pos = build_inp_pos(); + // temperature tuning + ggml_tensor * inp_attn_scale = nullptr; + if (arch == LLM_ARCH_LLAMA4) { + inp_attn_scale = build_inp_attn_scale(); + } + auto * inp_attn = build_attn_inp_kv_unified(); const float kq_scale = hparams.f_attention_scale == 0.0f ? 1.0f/sqrtf(float(n_embd_head)) : hparams.f_attention_scale; for (int il = 0; il < n_layer; ++il) { ggml_tensor * inpSA = inpL; + bool use_rope = arch == LLM_ARCH_LLAMA4 + ? (il + 1) % hparams.n_no_rope_layer_step != 0 + : true; + // norm cur = build_norm(inpL, model.layers[il].attn_norm, NULL, @@ -4246,25 +4327,38 @@ struct llm_build_llama : public llm_graph_context { Kcur = ggml_reshape_3d(ctx0, Kcur, n_embd_head, n_head_kv, n_tokens); Vcur = ggml_reshape_3d(ctx0, Vcur, n_embd_head, n_head_kv, n_tokens); - Qcur = ggml_rope_ext( - ctx0, Qcur, inp_pos, rope_factors, - n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow - ); + if (use_rope) { + Qcur = ggml_rope_ext( + ctx0, Qcur, inp_pos, rope_factors, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow + ); - Kcur = ggml_rope_ext( - ctx0, Kcur, inp_pos, rope_factors, - n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, - ext_factor, attn_factor, beta_fast, beta_slow - ); + Kcur = ggml_rope_ext( + ctx0, Kcur, inp_pos, rope_factors, + n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, + ext_factor, attn_factor, beta_fast, beta_slow + ); + } else if (inp_attn_scale) { + Qcur = ggml_mul(ctx0, Qcur, inp_attn_scale); + } cb(Qcur, "Qcur", il); cb(Kcur, "Kcur", il); cb(Vcur, "Vcur", il); + if (arch == LLM_ARCH_LLAMA4 && use_rope && hparams.use_kq_norm) { + // Llama4TextL2Norm + Qcur = ggml_rms_norm(ctx0, Qcur, 1e-6); + Kcur = ggml_rms_norm(ctx0, Kcur, 1e-6); + cb(Qcur, "Qcur_normed", il); + cb(Kcur, "Kcur_normed", il); + } + cur = build_attn(inp_attn, gf, model.layers[il].wo, model.layers[il].bo, Qcur, Kcur, Vcur, nullptr, kq_scale, il); + cb(cur, "attn_out", il); } if (il == n_layer - 1) { @@ -4282,7 +4376,7 @@ struct llm_build_llama : public llm_graph_context { ggml_tensor * ffn_inp = ggml_add(ctx0, cur, inpSA); cb(ffn_inp, "ffn_inp", il); - // feed-forward network + // feed-forward network (non-MoE) if (model.layers[il].ffn_gate_inp == nullptr) { cur = build_norm(ffn_inp, @@ -4297,6 +4391,38 @@ struct llm_build_llama : public llm_graph_context { NULL, LLM_FFN_SILU, LLM_FFN_PAR, il); cb(cur, "ffn_out", il); + + } else if (arch == LLM_ARCH_LLAMA4) { + // llama4 MoE + ggml_tensor * ffn_inp_normed = build_norm(ffn_inp, + model.layers[il].ffn_norm, NULL, + LLM_NORM_RMS, il); + cb(cur, "ffn_norm", il); + + ggml_tensor * moe_out = build_moe_ffn(ffn_inp_normed, + model.layers[il].ffn_gate_inp, + model.layers[il].ffn_up_exps, + model.layers[il].ffn_gate_exps, + model.layers[il].ffn_down_exps, + nullptr, + n_expert, n_expert_used, + LLM_FFN_SILU, false, + false, 0.0, + LLAMA_EXPERT_GATING_FUNC_TYPE_SIGMOID, + il); + + // Shared experts + ggml_tensor * shexp_out = build_ffn(ffn_inp_normed, + model.layers[il].ffn_up_shexp, NULL, NULL, + model.layers[il].ffn_gate_shexp, NULL, NULL, + model.layers[il].ffn_down_shexp, NULL, NULL, + NULL, + LLM_FFN_SILU, LLM_FFN_PAR, il); + cb(shexp_out, "ffn_moe_shexp", il); + + cur = ggml_add(ctx0, moe_out, shexp_out); + cb(cur, "ffn_moe_out_merged", il); + } else { // MoE branch cur = build_norm(ffn_inp, @@ -12091,6 +12217,7 @@ llm_graph_result_ptr llama_model::build_graph( switch (arch) { case LLM_ARCH_LLAMA: + case LLM_ARCH_LLAMA4: case LLM_ARCH_MINICPM: case LLM_ARCH_GRANITE: case LLM_ARCH_GRANITE_MOE: @@ -12440,6 +12567,7 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { // use what we call a normal RoPE, operating on pairs of consecutive head values case LLM_ARCH_LLAMA: + case LLM_ARCH_LLAMA4: case LLM_ARCH_DECI: case LLM_ARCH_BAICHUAN: case LLM_ARCH_STARCODER: diff --git a/src/llama-model.h b/src/llama-model.h index 91e6e8725acd2..0f18dac16733b 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -86,6 +86,8 @@ enum llm_type { LLM_TYPE_57B_A14B, LLM_TYPE_27B, LLM_TYPE_290B, + LLM_TYPE_17B_16E, // llama4 Scout + LLM_TYPE_17B_128E, // llama4 Maverick }; struct llama_layer_posnet { diff --git a/src/llama-vocab.cpp b/src/llama-vocab.cpp index 5d5cafbea1f1b..0feabd95aaf2b 100644 --- a/src/llama-vocab.cpp +++ b/src/llama-vocab.cpp @@ -1616,7 +1616,8 @@ void llama_vocab::impl::load(llama_model_loader & ml, const LLM_KV & kv) { tokenizer_pre == "megrez") { pre_type = LLAMA_VOCAB_PRE_TYPE_QWEN2; } else if ( - tokenizer_pre == "gpt-4o") { + tokenizer_pre == "gpt-4o" || + tokenizer_pre == "llama4") { pre_type = LLAMA_VOCAB_PRE_TYPE_GPT4O; clean_spaces = false; } else if ( From a226bc7a9ac50551f9f113808de0f0046837f188 Mon Sep 17 00:00:00 2001 From: compilade Date: Tue, 8 Apr 2025 03:03:07 -0400 Subject: [PATCH 13/96] gguf-py : support lazy tensor splitting (#12809) * gguf-py : support lazy tensor splitting Splitting usually involves returning tuples of tensors, which need to be handled properly to avoid early eager evaluation. * gguf-py : fix flake8 lint --- gguf-py/gguf/lazy.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gguf-py/gguf/lazy.py b/gguf-py/gguf/lazy.py index 8d4fece2dca86..f9bcadae0224b 100644 --- a/gguf-py/gguf/lazy.py +++ b/gguf-py/gguf/lazy.py @@ -139,6 +139,16 @@ def wrapped_fn(*args, **kwargs): if isinstance(res, cls._tensor_type): return cls(meta=cls.eager_to_meta(res), args=args, kwargs=kwargs, func=fn) + elif isinstance(res, tuple) and all(isinstance(t, cls._tensor_type) for t in res): + # share the evaluation between lazy tuple elements + shared_args: list = [args, None] + + def eager_tuple_element(a: list[Any], i: int = 0, /, **kw) -> LazyBase: + assert len(a) == 2 + if a[1] is None: + a[1] = fn(*a[0], **kw) + return a[1][i] + return tuple(cls(meta=cls.eager_to_meta(res[i]), args=(shared_args, i), kwargs=kwargs, func=eager_tuple_element) for i in range(len(res))) else: del res # not needed # non-tensor return likely relies on the contents of the args From 656babd6c21a3b9b3622324cfcc80a2ab78da25b Mon Sep 17 00:00:00 2001 From: Neo Zhang Jianyu Date: Tue, 8 Apr 2025 15:03:21 +0800 Subject: [PATCH 14/96] Revert "sycl:remove redundant memcopy in function ggml_backend_sycl_buffer_set_tensor" (#12812) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "sycl: remove redundant memcopy in function ggml_backend_sycl_buffer_s…" This reverts commit 518a01480eb3a7c80a4951b430db9dee55428310. * Update ggml/src/ggml-sycl/ggml-sycl.cpp * Update ggml/src/ggml-sycl/ggml-sycl.cpp * rm tail space --- ggml/src/ggml-sycl/ggml-sycl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index f6f288d990639..89715eaea0753 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -372,9 +372,14 @@ static void ggml_backend_sycl_buffer_set_tensor(ggml_backend_buffer_t buffer, auto stream = &(dpct::dev_mgr::instance().get_device(ctx->device).default_queue()); SYCL_CHECK( CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw())); + // Note: Use host buffer to save the data from mmap(), then copy to device. It's workaround for mmap() issue on PVC GPU. + // This function will be called during load model from disk. Use memory buffer replace dynamic won't save more time and brings potential memory leak risk here. + char* host_buf = (char*)malloc(size); + memcpy(host_buf, data, size); SYCL_CHECK( - CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, data, size) + CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, host_buf, size) .wait())); + free(host_buf); } catch (sycl::exception const &exc) { std::cerr << exc.what() << "Exception caught at file:" << __FILE__ From 8ca6e1c3a4deb6bb27ee294bfd5706098d94ae88 Mon Sep 17 00:00:00 2001 From: characharm <123120856+characharm@users.noreply.github.com> Date: Tue, 8 Apr 2025 14:14:59 +0500 Subject: [PATCH 15/96] server : webui : Improve Chat Input with Auto-Sizing Textarea (#12785) * Update ChatScreen.tsx * useAutosizeTextarea.ts useAutosizeTextarea to encapsulate the logic. * Implement responsive auto-sizing chat textarea Replaces the manual textarea resizing with an automatic height adjustment based on content. - `useChatTextarea` hook to manage textarea state and auto-sizing logic via refs, preserving the optimization - Textarea now grows vertically up to a maximum height (`lg:max-h-48`) on large screens (lg breakpoint and up). - Disables auto-sizing and enables manual vertical resizing (`resize-vertical`) on smaller screens for better mobile usability. - Aligns the "Send" button to the bottom of the textarea (`items-end`) for consistent positioning during resize. * -update compressed index.html.gz after npm run build -refactor: replace OptimizedTextareaValue with AutosizeTextareaApi in VSCode context hook * chore: normalize line endings to LF refactor: AutosizeTextareaApi -> chatTextareaApi * refactor: Rename interface to PascalCase --------- Co-authored-by: Xuan Son Nguyen --- examples/server/public/index.html.gz | Bin 1263128 -> 1263380 bytes .../webui/src/components/ChatScreen.tsx | 58 +++-------- .../webui/src/components/useChatTextarea.ts | 96 ++++++++++++++++++ .../server/webui/src/utils/llama-vscode.ts | 4 +- 4 files changed, 111 insertions(+), 47 deletions(-) create mode 100644 examples/server/webui/src/components/useChatTextarea.ts diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index 941815c22efb0b6dcbbe50f0bd2d7d193dad1c7d..674e227571e2d38be246c0ebde8bf275d973865b 100644 GIT binary patch delta 1198829 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
fz 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\EOI%n@J)6n+8h34VuJ26i+=?({u2DkZ`2G0@-b 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%0A5(@TG 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

  • 87d?ph<&z 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�q89wjIdHPaA83 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
      p$^!bw^?p4j8CB%{|N2^AM<(sJZ}+yB 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 z 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 V(){y{w%}j?3kcRrX0k2!CICk`1E2r^ delta 1198475 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 z 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 z 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 z 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
      N;p2NOn|Kyq-=|6{IP?p23qh| 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≫)N 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 z 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≫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 z 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 diff --git a/examples/server/webui/src/components/ChatScreen.tsx b/examples/server/webui/src/components/ChatScreen.tsx index d12b06e125e5a..29ab5ea64f76f 100644 --- a/examples/server/webui/src/components/ChatScreen.tsx +++ b/examples/server/webui/src/components/ChatScreen.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useRef, useState } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { CallbackGeneratedChunk, useAppContext } from '../utils/app.context'; import ChatMessage from './ChatMessage'; import { CanvasType, Message, PendingMessage } from '../utils/types'; @@ -6,6 +6,7 @@ import { classNames, cleanCurrentUrl, throttle } from '../utils/misc'; import CanvasPyInterpreter from './CanvasPyInterpreter'; import StorageUtils from '../utils/storage'; import { useVSCodeContext } from '../utils/llama-vscode'; +import { useChatTextarea, ChatTextareaApi } from './useChatTextarea.ts'; /** * A message display is a message node with additional information for rendering. @@ -99,7 +100,8 @@ export default function ChatScreen() { canvasData, replaceMessageAndGenerate, } = useAppContext(); - const textarea = useOptimizedTextarea(prefilledMsg.content()); + + const textarea: ChatTextareaApi = useChatTextarea(prefilledMsg.content()); const { extraContext, clearExtraContext } = useVSCodeContext(textarea); // TODO: improve this when we have "upload file" feature @@ -248,14 +250,16 @@ export default function ChatScreen() { {/* chat input */} -

      +
      + {isGenerating(currConvId ?? '') ? (

      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 z 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 #Qn4nP8CMSh-;K+;CYZHBR9ezCzV&+1Y5)~Fg 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

    !-&ny%Z~Z)O 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

  • 6IWT+DR)vK{uti9?`1+v%9WrkQHO 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