summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXuan Son Nguyen <thichthat@gmail.com>2024-01-23 08:11:39 +0100
committerGitHub <noreply@github.com>2024-01-23 09:11:39 +0200
commit2bed4aa3f37cb4e39e16e9ec7b595a7738fd5faf (patch)
treefb2b892dbfe18a28a4dd19f5155b3c0e951c5e5c
parent125d03a5036a02a983c8e98c2cdc126e061afb8e (diff)
devops : add intel oneapi dockerfile (#5068)
Co-authored-by: Xuan Son Nguyen <xuanson.nguyen@snowpack.eu>
-rw-r--r--.devops/main-intel.Dockerfile26
-rw-r--r--.github/workflows/docker.yml1
-rw-r--r--CMakeLists.txt5
3 files changed, 32 insertions, 0 deletions
diff --git a/.devops/main-intel.Dockerfile b/.devops/main-intel.Dockerfile
new file mode 100644
index 00000000..e1e6acc2
--- /dev/null
+++ b/.devops/main-intel.Dockerfile
@@ -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" ]
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 87904b75..825b8f50 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a333ff5..af366512 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)