|
| 1 | +# User guides |
| 2 | +# |
| 3 | +# 0. Install Ascend driver on host. |
| 4 | +# (https://www.hiascend.com/en/hardware/firmware-drivers) |
| 5 | +# |
| 6 | +# 1. Run docker container. |
| 7 | +# docker run -it \ |
| 8 | +# --name opencv \ |
| 9 | +# --device /dev/davinci0 \ |
| 10 | +# --device /dev/davinci_manager \ |
| 11 | +# --device /dev/devmm_svm \ |
| 12 | +# --device /dev/hisi_hdc \ |
| 13 | +# -v /usr/local/dcmi:/usr/local/dcmi \ |
| 14 | +# -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ |
| 15 | +# -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ |
| 16 | +# opencv bash |
| 17 | +# |
| 18 | +# 2. Check environment. |
| 19 | +# npu-smi info |
| 20 | +# |
| 21 | +# 3. Compile opencv with Ascend NPU backend. |
| 22 | +# cmake -DWITH_CANN=1 |
| 23 | +# |
| 24 | +# 4. Run opencv_test_cannops. |
| 25 | +# ./bin/opencv_test_cannops |
| 26 | + |
| 27 | +FROM ubuntu:20.04 |
| 28 | + |
| 29 | +RUN apt update && \ |
| 30 | + DEBIAN_FRONTEND=noninteractive apt install -y \ |
| 31 | + git \ |
| 32 | + wget \ |
| 33 | + gcc \ |
| 34 | + g++ \ |
| 35 | + cmake \ |
| 36 | + make \ |
| 37 | + zlib1g \ |
| 38 | + zlib1g-dev \ |
| 39 | + openssl \ |
| 40 | + libsqlite3-dev \ |
| 41 | + libssl-dev \ |
| 42 | + libffi-dev \ |
| 43 | + unzip \ |
| 44 | + pciutils \ |
| 45 | + net-tools \ |
| 46 | + libblas-dev \ |
| 47 | + gfortran \ |
| 48 | + patchelf \ |
| 49 | + libblas3 && \ |
| 50 | + rm -rf /var/lib/apt/lists/* |
| 51 | + |
| 52 | +# Install Python 3.9 |
| 53 | +RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ |
| 54 | + bash ~/miniconda.sh -b -p /root/miniconda && \ |
| 55 | + rm -f ~/miniconda.sh |
| 56 | +RUN /root/miniconda/bin/conda create --name opencv -y python=3.9 |
| 57 | +ENV PATH=/root/miniconda/envs/opencv/bin/:$PATH |
| 58 | +RUN pip install numpy sympy decorator scipy attrs |
| 59 | + |
| 60 | +# Install CANN |
| 61 | +ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common/:/usr/local/Ascend/driver/lib64/driver/:$LD_LIBRARY_PATH \ |
| 62 | + CANN_TOOLKIT_URL=https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C13SPC702/Ascend-cann-toolkit_7.0.RC1.alpha002_linux-x86_64.run |
| 63 | + |
| 64 | +RUN wget ${CANN_TOOLKIT_URL} && \ |
| 65 | + chmod +x Ascend-cann-toolkit_7.0.RC1.alpha002_linux-x86_64.run && \ |
| 66 | + ./Ascend-cann-toolkit_7.0.RC1.alpha002_linux-x86_64.run --install && \ |
| 67 | + rm -f ./Ascend-cann-toolkit_7.0.RC1.alpha002_linux-x86_64.run |
| 68 | + |
| 69 | +ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH:/usr/lib64 |
| 70 | +ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest |
| 71 | +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 |
| 72 | +ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH |
| 73 | +ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:$PATH |
| 74 | +ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME} |
| 75 | +ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp |
| 76 | +ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit |
| 77 | +ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME} |
0 commit comments