Skip to content

Commit 92983d4

Browse files
committed
Add Dockerfile for Ascend NPU backend.
Usage: 0. Install Ascend driver on host. (https://www.hiascend.com/en/hardware/firmware-drivers) 1. Run docker container. docker run -it \ --name opencv \ --device /dev/davinci0 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ opencv bash 2. Check environment. npu-smi info 3. Compile opencv with Ascend NPU backend. cmake -DWITH_CANN=1 4. Run opencv_test_cannops. ./bin/opencv_test_cannops
1 parent 1f72968 commit 92983d4

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

modules/cannops/Dockerfile

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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

Comments
 (0)