1
0

llama-cli-cann.Dockerfile 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. ARG ASCEND_VERSION=8.1.RC1.alpha001-910b-openeuler22.03-py3.10
  2. FROM ascendai/cann:$ASCEND_VERSION AS build
  3. WORKDIR /app
  4. COPY . .
  5. RUN yum install -y gcc g++ cmake make libcurl-devel
  6. ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest
  7. ENV LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:$LIBRARY_PATH
  8. ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}
  9. ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:${PYTHONPATH}
  10. ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:${PATH}
  11. ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}
  12. ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp
  13. ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit
  14. ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}
  15. # find libascend_hal.so, because the drive hasn`t been mounted.
  16. ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/runtime/lib64/stub:$LD_LIBRARY_PATH
  17. RUN echo "Building with static libs" && \
  18. source /usr/local/Ascend/ascend-toolkit/set_env.sh --force && \
  19. cmake -B build -DGGML_NATIVE=OFF -DGGML_CANN=ON -DBUILD_SHARED_LIBS=OFF -DLLAMA_BUILD_TESTS=OFF && \
  20. cmake --build build --config Release --target llama-cli && \
  21. cmake --build build --config Release --target llama-completion
  22. # TODO: use image with NNRT
  23. FROM ascendai/cann:$ASCEND_VERSION AS runtime
  24. COPY --from=build /app/build/bin/llama-cli /app/build/bin/llama-completion /
  25. ENV LC_ALL=C.utf8
  26. ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest
  27. ENV LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:$LIBRARY_PATH
  28. ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}
  29. ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:${PYTHONPATH}
  30. ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:${PATH}
  31. ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}
  32. ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp
  33. ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit
  34. ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}
  35. ENTRYPOINT ["/llama-cli" ]