Dockerfile2 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. ARG CUDA_11_VERSION=11.3
  2. ARG CUDA_12_VERSION=12.4
  3. ARG ROCM_VERSION=6.1.2
  4. ARG JETPACK_5_VERSION=r35.4.1
  5. ARG JETPACK_6_VERSION=r36.2.0
  6. ARG CMAKE_VERSION=3.31.2
  7. FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCM_VERSION}-complete AS base
  8. ARG CMAKE_VERSION
  9. RUN curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz | tar xz -C /usr --strip-components 1
  10. RUN sed -i -e 's/mirror.centos.org/vault.centos.org/g' -e 's/^#.*baseurl=http/baseurl=http/g' -e 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo \
  11. && yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
  12. # FROM --platform=linux/arm64 rockylinux:8 AS base
  13. # ARG CMAKE_VERSION
  14. # RUN curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-aarch64.tar.gz | tar xz -C /usr --strip-components 1
  15. # RUN yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/sbsa/cuda-rhel8.repo
  16. FROM base AS amd64
  17. ARG CUDA_11_VERSION
  18. ARG CUDA_12_VERSION
  19. RUN yum install -y cuda-toolkit-${CUDA_11_VERSION//./-} \
  20. && yum install -y cuda-toolkit-${CUDA_12_VERSION//./-}
  21. COPY CMakeLists.txt CMakeLists.txt
  22. COPY ml/backend/ggml/ggml ml/backend/ggml/ggml
  23. FROM --platform=linux/amd64 amd64 AS cuda_11
  24. ENV PATH=/usr/local/cuda-${CUDA_11_VERSION}/bin:$PATH
  25. RUN cmake -S . -B build -DCMAKE_CUDA_ARCHITECTURES="50;52;53;60;61;62;70;72;75;80;86"
  26. RUN cmake --build build --target ggml-cuda -j
  27. FROM --platform=linux/amd64 amd64 AS cuda_12
  28. ENV PATH=/usr/local/cuda-${CUDA_12_VERSION}/bin:$PATH
  29. RUN cmake -S . -B build -DCMAKE_CUDA_ARCHITECTURES="60;61;62;70;72;75;80;86;87;89;90;90a"
  30. RUN cmake --build build --target ggml-cuda -j
  31. FROM --platform=linux/amd64 amd64 AS rocm
  32. RUN cmake -S . -B build -DCMAKE_HIP_ARCHITECTURES="gfx900;gfx940;gfx941;gfx942;gfx1010;gfx1012;gfx1030;gfx1100;gfx1101;gfx1102"
  33. RUN cmake --build build --target ggml-hip -j
  34. FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_5_VERSION} AS jetpack_5
  35. ARG CMAKE_VERSION
  36. RUN curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-aarch64.tar.gz | tar xz -C /usr --strip-components 1
  37. COPY CMakeLists.txt .
  38. COPY ml/backend/ggml/ggml .
  39. RUN cmake -S . -B build \
  40. -DCMAKE_CUDA_ARCHITECTURES="72;87"
  41. RUN cmake --build build --target ggml-cuda
  42. FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_6_VERSION} AS jetpack_6
  43. ARG CMAKE_VERSION
  44. RUN curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-aarch64.tar.gz | tar xz -C /usr --strip-components 1
  45. COPY CMakeLists.txt .
  46. COPY ml/backend/ggml/ggml .
  47. RUN cmake -S . -B build \
  48. -DCMAKE_CUDA_ARCHITECTURES="87"
  49. RUN cmake --build build --target ggml-cuda
  50. FROM --platform=linux/amd64 golang:1.23
  51. COPY --from=cuda_11 build/ml/backend/ggml/ggml/src/ggml-cuda/libggml-cuda.so libggml-cuda-11.so
  52. COPY --from=cuda_12 build/ml/backend/ggml/ggml/src/ggml-cuda/libggml-cuda.so libggml-cuda-12.so
  53. COPY --from=rocm build/ml/backend/ggml/ggml/src/ggml-hip/libggml-hip.so libggml-hip.so
  54. # FROM --platform=linux/arm64 golang:1.23
  55. # COPY --from=jetpack_5 build/ml/backend/ggml/ggml/src/ggml-cuda/libggml-cuda.so libggml-cuda-jetpack-5.so
  56. # COPY --from=jetpack_6 build/ml/backend/ggml/ggml/src/ggml-cuda/libggml-cuda.so libggml-cuda-jetpack-6.so