forked from jiuyuan/InfiniTensor
feat(env): add docker support. (#122)
This PR adds Docker support for running this project, and it primarily accomplishes the following tasks: - Added the necessary `Dockerfile` for running the project on CPU environment. - Added commands to the `Makefile` for convenient Docker startup. - Added documentation in `docs/INSTALL_GUIDE_CN.md` explaining how to launch the Docker environment.
This commit is contained in:
commit
d8ffd8a4b7
28
Makefile
28
Makefile
|
@ -7,6 +7,20 @@ INTELCPU ?= off
|
||||||
BACKTRACE ?= ON
|
BACKTRACE ?= ON
|
||||||
TEST ?= ON
|
TEST ?= ON
|
||||||
FORMAT_ORIGIN ?=
|
FORMAT_ORIGIN ?=
|
||||||
|
# Docker build options
|
||||||
|
DOCKER_NAME ?= infinitensor
|
||||||
|
DOCKER_IMAGE_NAME ?= infinitensor
|
||||||
|
DOCKER_FILE ?= infinitensor_ubuntu_22.04.dockerfile
|
||||||
|
DOCKER_RUN_OPTION ?=
|
||||||
|
|
||||||
|
# CUDA option.
|
||||||
|
ifeq ($(CUDA), ON)
|
||||||
|
DOCKER_IMAGE_NAME = infinitensor_cuda
|
||||||
|
DOCKER_NAME = infinitensor_cuda
|
||||||
|
DOCKER_FILE = infinitensor_ubuntu_22.04_CUDA.dockerfile
|
||||||
|
DOCKER_RUN_OPTION += --gpus all -it --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -v `pwd`:`pwd` -w `pwd`
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
CMAKE_OPT = -DCMAKE_BUILD_TYPE=$(TYPE)
|
CMAKE_OPT = -DCMAKE_BUILD_TYPE=$(TYPE)
|
||||||
CMAKE_OPT += -DUSE_CUDA=$(CUDA)
|
CMAKE_OPT += -DUSE_CUDA=$(CUDA)
|
||||||
|
@ -39,3 +53,17 @@ test-cpp:
|
||||||
test-onnx:
|
test-onnx:
|
||||||
@echo
|
@echo
|
||||||
python3 pyinfinitensor/tests/test_onnx.py
|
python3 pyinfinitensor/tests/test_onnx.py
|
||||||
|
|
||||||
|
docker-build:
|
||||||
|
docker build -f scripts/dockerfile/$(DOCKER_FILE) -t $(DOCKER_NAME) .
|
||||||
|
|
||||||
|
docker-run:
|
||||||
|
docker run -t --name $(DOCKER_IMAGE_NAME) -d $(DOCKER_NAME) $(DOCKER_RUN_OPTION)
|
||||||
|
|
||||||
|
docker-start:
|
||||||
|
docker start $(DOCKER_IMAGE_NAME)
|
||||||
|
|
||||||
|
docker-exec:
|
||||||
|
docker exec -it $(DOCKER_IMAGE_NAME) bash
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,29 @@
|
||||||
|
|
||||||
安装成功后,您就可以使用本项目的 Python 接口进行编码并运行。具体使用方式可以参考项目样例代码 example/Resnet/resnet.py 以及用户使用手册
|
安装成功后,您就可以使用本项目的 Python 接口进行编码并运行。具体使用方式可以参考项目样例代码 example/Resnet/resnet.py 以及用户使用手册
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
本项目也提供了 Docker 的环境,您可以使用 `make docker-build` 或 `make docker-build CUDA=ON` 命令启动并编译 Dockerfile,您可以通过添加编译选项或者修改 Makefile 变量修改 docker image 名称或者所选的 Dockerfile 文件。
|
||||||
|
|
||||||
|
由于在拉取 github repo 时需要将 ssh key 加入到 github profile 中,因此暂时注释掉拉取 repo 并编译项目的过程,由用户在进入 docker 后自己维护 ssh key(将 host 中的 ssh key 复制到 docker 中可能会遇到环境不一致的问题)。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Build docker container.
|
||||||
|
make docker-build
|
||||||
|
# Run docker image.
|
||||||
|
make docker-run
|
||||||
|
# Execute docker image.
|
||||||
|
make docker-exec
|
||||||
|
```
|
||||||
|
|
||||||
|
如果需要编译 CUDA 版,请使用如下命令:
|
||||||
|
```shell
|
||||||
|
# Build docker container.
|
||||||
|
make docker-build CUDA=ON
|
||||||
|
# Run docker image.
|
||||||
|
make docker-run CUDA=ON
|
||||||
|
```
|
||||||
|
|
||||||
## 技术支持
|
## 技术支持
|
||||||
|
|
||||||
如遇到问题,请联系我们技术支持团队
|
如遇到问题,请联系我们技术支持团队
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
FROM ubuntu:22.04
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Install dependencies.
|
||||||
|
RUN apt update && apt-get install -y git make cmake build-essential python-is-python3 python-dev-is-python3 python3-pip libdw-dev openssh-client
|
||||||
|
# Generate ssh key.
|
||||||
|
RUN ssh-keygen -t rsa -f /root/.ssh/id_rsa -q -P ""
|
||||||
|
|
||||||
|
# Update pip and switch to Tsinghua source.
|
||||||
|
RUN python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||||
|
|
||||||
|
# TODO: Since SSH clone repo requires adding the SSH key to the GitHub profile,
|
||||||
|
# the process of pulling the project and compiling it has been temporarily commented.
|
||||||
|
|
||||||
|
# Download InfiniTensor.
|
||||||
|
# RUN git clone git@github.com:InfiniTensor/InfiniTensor.git /root/InfiniTensor --branch master --single-branch --recursive
|
||||||
|
|
||||||
|
# Build and Install InfiniTensor
|
||||||
|
# RUN cd /root/InfiniTensor && make install-python
|
|
@ -0,0 +1,18 @@
|
||||||
|
FROM nvcr.io/nvidia/pytorch:23.07-py3
|
||||||
|
|
||||||
|
# Install dependencies.
|
||||||
|
RUN apt-get -o Acquire::Check-Valid-Until=false -o Acquire::Check-Date=false update && apt-get install -y git make cmake build-essential python-is-python3 python-dev-is-python3 python3-pip libdw-dev openssh-client
|
||||||
|
# Generate ssh key.
|
||||||
|
RUN ssh-keygen -t rsa -f /root/.ssh/id_rsa -q -P ""
|
||||||
|
|
||||||
|
# Update pip and switch to Tsinghua source.
|
||||||
|
RUN python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||||
|
|
||||||
|
# TODO: Since SSH clone repo requires adding the SSH key to the GitHub profile,
|
||||||
|
# the process of pulling the project and compiling it has been temporarily commented.
|
||||||
|
|
||||||
|
# Download InfiniTensor.
|
||||||
|
# RUN git clone git@github.com:InfiniTensor/InfiniTensor.git /root?/InfiniTensor --branch master --single-branch --recursive
|
||||||
|
|
||||||
|
# Build and Install InfiniTensor
|
||||||
|
# RUN cd /root/InfiniTensor && make install-python CUDA=ON
|
Loading…
Reference in New Issue