]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
devops : add intel oneapi dockerfile (#5068)
authorXuan Son Nguyen <redacted>
Tue, 23 Jan 2024 07:11:39 +0000 (08:11 +0100)
committerGitHub <redacted>
Tue, 23 Jan 2024 07:11:39 +0000 (09:11 +0200)
Co-authored-by: Xuan Son Nguyen <redacted>
.devops/main-intel.Dockerfile [new file with mode: 0644]
.github/workflows/docker.yml
CMakeLists.txt

diff --git a/.devops/main-intel.Dockerfile b/.devops/main-intel.Dockerfile
new file mode 100644 (file)
index 0000000..e1e6acc
--- /dev/null
@@ -0,0 +1,26 @@
+ARG ONEAPI_VERSION=2024.0.1-devel-ubuntu22.04
+ARG UBUNTU_VERSION=22.04
+
+FROM intel/hpckit:$ONEAPI_VERSION as build
+
+RUN apt-get update && \
+    apt-get install -y git
+
+WORKDIR /app
+
+COPY . .
+
+# for some reasons, "-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=Intel10_64lp -DLLAMA_NATIVE=ON" give worse performance
+RUN mkdir build && \
+    cd build && \
+    cmake .. -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx && \
+    cmake --build . --config Release --target main server
+
+FROM ubuntu:$UBUNTU_VERSION as runtime
+
+COPY --from=build /app/build/bin/main /main
+COPY --from=build /app/build/bin/server /server
+
+ENV LC_ALL=C.utf8
+
+ENTRYPOINT [ "/main" ]
index 87904b75e77d229e5cfc783d08ba8f23356e8654..825b8f503186f56a5c987b9e4b35f104a0325c15 100644 (file)
@@ -35,6 +35,7 @@ jobs:
           - { tag: "full-cuda", dockerfile: ".devops/full-cuda.Dockerfile", platforms: "linux/amd64" }
           - { tag: "light-rocm", dockerfile: ".devops/main-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" }
           - { tag: "full-rocm", dockerfile: ".devops/full-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" }
+          - { tag: "light-intel", dockerfile: ".devops/main-intel.Dockerfile", platforms: "linux/amd64" }
     steps:
       - name: Check out the repo
         uses: actions/checkout@v3
index 5a333ff524b65858cf65b52ece15891ede7e7df6..af36651297b7677837f0892e02c0e7e9e86d82cc 100644 (file)
@@ -478,6 +478,11 @@ function(get_flags CCID CCVER)
         if (CCVER VERSION_GREATER_EQUAL 8.1.0)
             set(CXX_FLAGS ${CXX_FLAGS} -Wextra-semi)
         endif()
+    elseif (CCID MATCHES "Intel")
+        # enable max optimization level when using Intel compiler
+        set(C_FLAGS   -ipo -O3 -static -fp-model=fast -flto -fno-stack-protector)
+        set(CXX_FLAGS -ipo -O3 -static -fp-model=fast -flto -fno-stack-protector)
+        add_link_options(-fuse-ld=lld -static-intel)
     endif()
 
     set(GF_C_FLAGS   ${C_FLAGS}   PARENT_SCOPE)