ARG BASE=nvcr.io/nvidia/cuda:12.0.0-devel-ubuntu22.04@sha256:0578d90ce082ed37cdc8daf31d401b5a62594a847e9cf6b5cdf4c2356ac49869 FROM $BASE ARG ADDITIONAL_PACKAGES ARG ONEAPI_VERSION=2025.2 RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub RUN apt-get update && apt-get install -y \ bc \ wget \ ccache \ ninja-build \ python3 \ git \ libomp-dev \ ${ADDITIONAL_PACKAGES} \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN KEYDUMP_URL=https://cloud1.cees.ornl.gov/download && \ KEYDUMP_FILE=keydump && \ wget --quiet ${KEYDUMP_URL}/${KEYDUMP_FILE} && \ wget --quiet ${KEYDUMP_URL}/${KEYDUMP_FILE}.sig && \ gpg --import ${KEYDUMP_FILE} && \ gpg --verify ${KEYDUMP_FILE}.sig ${KEYDUMP_FILE} && \ rm ${KEYDUMP_FILE}* ARG CMAKE_VERSION=3.23.2 ENV CMAKE_DIR=/opt/cmake RUN CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} && \ CMAKE_SCRIPT=cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \ CMAKE_SHA256=cmake-${CMAKE_VERSION}-SHA-256.txt && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ grep -i ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sed -e s/linux/Linux/ | sha256sum --check && \ mkdir -p ${CMAKE_DIR} && \ sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ rm cmake* ENV PATH=${CMAKE_DIR}/bin:$PATH RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && \ echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \ | tee /etc/apt/sources.list.d/oneAPI.list RUN apt-get update && apt-get install -y \ intel-oneapi-compiler-dpcpp-cpp-${ONEAPI_VERSION} \ curl \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN cd /tmp && git clone https://github.com/intel/llvm.git -b v6.2.0 --depth=1 && cd llvm && \ cmake -S unified-runtime -B build_ur \ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \ -DUR_BUILD_TESTS=OFF \ -DUR_ENABLE_TRACING=ON \ -DUR_BUILD_ADAPTER_CUDA=ON \ -DUR_BUILD_ADAPTER_OPENCL=ON \ -DCMAKE_BUILD_TYPE=Release && \ cmake --build build_ur -j 8 && \ cp -r build_ur/lib/* /opt/intel/oneapi/compiler/${ONEAPI_VERSION}/lib/ && \ rm -r /tmp/llvm # sycl-ls, icpx ENV PATH=/opt/intel/oneapi/compiler/${ONEAPI_VERSION}/bin/:$PATH # libsycl, libsvml ENV LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/${ONEAPI_VERSION}/lib:$LD_LIBRARY_PATH