Skip to content

Commit

Permalink
cuquantum build mpi4py
Browse files Browse the repository at this point in the history
  • Loading branch information
Shusen Liu committed Nov 1, 2024
1 parent bc99de6 commit b86fd3c
Showing 1 changed file with 54 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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"]

0 comments on commit b86fd3c

Please sign in to comment.