From b86fd3ce19391f343e0f642ba1bea9c9ae44c14f Mon Sep 17 00:00:00 2001 From: Shusen Liu Date: Fri, 1 Nov 2024 15:43:59 +1100 Subject: [PATCH] cuquantum build mpi4py --- ...cuquantum-appliance-next-ubuntu.dockerfile | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/arm/build-cuquantum-appliance-next/cuquantum-appliance-next-ubuntu/cuquantum-appliance-next-ubuntu.dockerfile b/arm/build-cuquantum-appliance-next/cuquantum-appliance-next-ubuntu/cuquantum-appliance-next-ubuntu.dockerfile index 83cf897..b7b3b14 100644 --- a/arm/build-cuquantum-appliance-next/cuquantum-appliance-next-ubuntu/cuquantum-appliance-next-ubuntu.dockerfile +++ b/arm/build-cuquantum-appliance-next/cuquantum-appliance-next-ubuntu/cuquantum-appliance-next-ubuntu.dockerfile @@ -210,62 +210,62 @@ RUN python -m venv --system-site-packages /opt/cuquantum-env && \ rm -rf /root/.cache/pip -# RUN ln -s /opt/cuquantum/lib/libcustatevec.so.1 /opt/cuquantum-env/lib/libcustatevec.so.1 &&\ -# ln -s /opt/cuquantum/lib/libcustatevec.so.1 /opt/cuquantum-env/lib/libcustatevec.so &&\ -# ln -s /opt/cuquantum/lib/libcutensornet.so.2 /opt/cuquantum-env/lib/libcutensornet.so.2 &&\ -# ln -s /opt/cuquantum/lib/libcutensornet.so.2 /opt/cuquantum-env/lib/libcutensornet.so +RUN ln -s /opt/cuquantum/lib/libcustatevec.so.1 /opt/cuquantum-env/lib/libcustatevec.so.1 &&\ + ln -s /opt/cuquantum/lib/libcustatevec.so.1 /opt/cuquantum-env/lib/libcustatevec.so &&\ + ln -s /opt/cuquantum/lib/libcutensornet.so.2 /opt/cuquantum-env/lib/libcutensornet.so.2 &&\ + ln -s /opt/cuquantum/lib/libcutensornet.so.2 /opt/cuquantum-env/lib/libcutensornet.so -# # Prepare activation script -# RUN echo '#!/bin/bash' > /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo '. /opt/cuquantum-env/bin/activate' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export CUDA_PATH=/usr/local/cuda' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export BASE_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export BASE_LD_PRELOAD=${LD_PRELOAD}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export LD_LIBRARY_PATH=/opt/cuquantum-env/lib:${LD_LIBRARY_PATH}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1:${LD_PRELOAD}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export CUQUANTUM_ROOT=/opt/cuquantum'>> /opt/cuquantum-env/activate_cuquantum.sh && \ -# echo 'export CUTENSOR_ROOT=/opt/cuquantum'>> /opt/cuquantum-env/activate_cuquantum.sh && \ -# # echo 'export MPI_PATH=/usr/local/mpi' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# # for cutensornet samples require MPI_ROOT -# # echo 'export MPI_ROOT=/usr/local/mpi' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# # echo 'export PATH=/usr/local/cuda/bin:/usr/local/mpi/bin:/usr/local/ucx/bin:/usr/local/munge/bin:/usr/local/pmix/bin:/usr/local/slurm/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/cuquantum/bin' >> /opt/cuquantum-env/activate_cuquantum.sh && \ -# chmod +x /opt/cuquantum-env/activate_cuquantum.sh - -# COPY qiskit_aer-0.15.0-cp312-cp312-linux_aarch64.whl /opt/ - -# RUN . /opt/cuquantum-env/activate_cuquantum.sh \ -# && pip install 'Cython>=0.29.22,<3' numpy cupy-cuda12x nbformat pytest\ -# && pip install /opt/qiskit_aer-0.15.0-cp312-cp312-linux_aarch64.whl\ -# && wget https://github.com/NVIDIA/cuQuantum/archive/refs/tags/v24.08.0.tar.gz \ -# && mkdir -p /opt/cuquantum-source \ -# && tar -xvf v24.08.0.tar.gz -C /opt/cuquantum-source --strip-components=1 \ -# && rm v24.08.0.tar.gz \ -# && cd /opt/cuquantum-source/python \ -# && pip install -v --no-deps --no-build-isolation . \ -# && rm -rf /root/.cache/pip - -# RUN cd /opt/cuquantum/distributed_interfaces &&\ -# sh activate_mpi.sh &&\ -# echo 'export CUTENSORNET_COMM_LIB=/opt/cuquantum/distributed_interfaces/libcutensornet_distributed_mpi.so' >> /opt/cuquantum-env/activate_cuquantum.sh - -# RUN git clone https://github.com/nvidia/cuquantum.git /tmp/cuquantum && \ -# mv /tmp/cuquantum/benchmarks /opt/benchmarks && \ -# rm -rf /tmp/cuquantum/benchmarks &&\ -# mv /tmp/cuquantum /opt/cuquantum-git &&\ -# . /opt/cuquantum-env/activate_cuquantum.sh && \ -# cd /opt/benchmarks && \ -# pip install . - - - -# # Configure deactivate script -# RUN echo '#!/bin/bash' > /opt/cuquantum-env/deactivate_cuquantum.sh && \ -# echo 'export LD_LIBRARY_PATH=${BASE_LD_LIBRARY_PATH}' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ -# echo 'export LD_PRELOAD=${BASE_LD_PRELOAD}' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ -# echo 'unset BASE_LD_LIBRARY_PATH' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ -# echo 'unset BASE_LD_PRELOAD' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ -# chmod +x /opt/cuquantum-env/deactivate_cuquantum.sh +# Prepare activation script +RUN echo '#!/bin/bash' > /opt/cuquantum-env/activate_cuquantum.sh && \ + echo '. /opt/cuquantum-env/bin/activate' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export CUDA_PATH=/usr/local/cuda' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export BASE_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export BASE_LD_PRELOAD=${LD_PRELOAD}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export LD_LIBRARY_PATH=/opt/cuquantum-env/lib:${LD_LIBRARY_PATH}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1:${LD_PRELOAD}' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export CUQUANTUM_ROOT=/opt/cuquantum'>> /opt/cuquantum-env/activate_cuquantum.sh && \ + echo 'export CUTENSOR_ROOT=/opt/cuquantum'>> /opt/cuquantum-env/activate_cuquantum.sh && \ +# echo 'export MPI_PATH=/usr/local/mpi' >> /opt/cuquantum-env/activate_cuquantum.sh && \ +# for cutensornet samples require MPI_ROOT +# echo 'export MPI_ROOT=/usr/local/mpi' >> /opt/cuquantum-env/activate_cuquantum.sh && \ +# echo 'export PATH=/usr/local/cuda/bin:/usr/local/mpi/bin:/usr/local/ucx/bin:/usr/local/munge/bin:/usr/local/pmix/bin:/usr/local/slurm/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/cuquantum/bin' >> /opt/cuquantum-env/activate_cuquantum.sh && \ + chmod +x /opt/cuquantum-env/activate_cuquantum.sh + +COPY qiskit_aer-0.15.0-cp312-cp312-linux_aarch64.whl /opt/ + +RUN . /opt/cuquantum-env/activate_cuquantum.sh \ + && pip install 'Cython>=0.29.22,<3' numpy cupy-cuda12x nbformat pytest\ + && pip install /opt/qiskit_aer-0.15.0-cp312-cp312-linux_aarch64.whl\ + && wget https://github.com/NVIDIA/cuQuantum/archive/refs/tags/v24.08.0.tar.gz \ + && mkdir -p /opt/cuquantum-source \ + && tar -xvf v24.08.0.tar.gz -C /opt/cuquantum-source --strip-components=1 \ + && rm v24.08.0.tar.gz \ + && cd /opt/cuquantum-source/python \ + && pip install -v --no-deps --no-build-isolation . \ + && rm -rf /root/.cache/pip + +RUN cd /opt/cuquantum/distributed_interfaces &&\ + sh activate_mpi.sh &&\ + echo 'export CUTENSORNET_COMM_LIB=/opt/cuquantum/distributed_interfaces/libcutensornet_distributed_mpi.so' >> /opt/cuquantum-env/activate_cuquantum.sh + +RUN git clone https://github.com/nvidia/cuquantum.git /tmp/cuquantum && \ + mv /tmp/cuquantum/benchmarks /opt/benchmarks && \ + rm -rf /tmp/cuquantum/benchmarks &&\ + mv /tmp/cuquantum /opt/cuquantum-git &&\ + . /opt/cuquantum-env/activate_cuquantum.sh && \ + cd /opt/benchmarks && \ + pip install . + + + +# Configure deactivate script +RUN echo '#!/bin/bash' > /opt/cuquantum-env/deactivate_cuquantum.sh && \ + echo 'export LD_LIBRARY_PATH=${BASE_LD_LIBRARY_PATH}' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ + echo 'export LD_PRELOAD=${BASE_LD_PRELOAD}' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ + echo 'unset BASE_LD_LIBRARY_PATH' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ + echo 'unset BASE_LD_PRELOAD' >> /opt/cuquantum-env/deactivate_cuquantum.sh && \ + chmod +x /opt/cuquantum-env/deactivate_cuquantum.sh # Set entrypoint to activate the environment on container start # ENTRYPOINT ["/opt/cuquantum-env/activate_cuquantum.sh"] \ No newline at end of file