OneFlow is a performance-centered and open-source deep learning framework.
- Version 0.6.0 is out!
- Improved consistent mode support.
- More performant eager execution.
- Full changelog
-
OneFlow: Redesign the Distributed Deep Learning Framework from Scratch
-
Bibtex Citation
@misc{yuan2021oneflow, title={OneFlow: Redesign the Distributed Deep Learning Framework from Scratch}, author={Jinhui Yuan and Xinqi Li and Cheng Cheng and Juncheng Liu and Ran Guo and Shenghang Cai and Chi Yao and Fei Yang and Xiaodong Yi and Chuan Wu and Haoran Zhang and Jie Zhao}, year={2021}, eprint={2110.15032}, archivePrefix={arXiv}, primaryClass={cs.DC} }
-
Python 3.6, 3.7, 3.8, 3.9, 3.10
-
(Highly recommended) Upgrade pip
python3 -m pip install --upgrade pip #--user
-
CUDA Toolkit Linux x86_64 Driver
-
CUDA runtime is statically linked into OneFlow. OneFlow will work on a minimum supported driver, and any driver beyond. For more information, please refer to CUDA compatibility documentation.
-
Please upgrade your Nvidia driver to version 440.33 or above and install OneFlow for CUDA 10.2 if possible.
-
-
To install latest stable release of OneFlow with CUDA support:
python3 -m pip install -f https://release.oneflow.info oneflow==0.6.0+cu102
-
To install nightly release of OneFlow with CUDA support:
python3 -m pip install --pre oneflow -f https://staging.oneflow.info/branch/master/cu102
-
To install other available builds for different variants:
- Stable
python3 -m pip install --find-links https://release.oneflow.info oneflow==0.6.0+[PLATFORM]
- Nightly
python3 -m pip install --pre oneflow -f https://staging.oneflow.info/branch/master/[PLATFORM]
- All available
[PLATFORM]
:Platform CUDA Driver Version Supported GPUs cu112 >= 450.80.02 GTX 10xx, RTX 20xx, A100, RTX 30xx cu102 >= 440.33 GTX 10xx, RTX 20xx cpu N/A N/A
- Stable
-
If you are in China, you could run this to have pip download packages from domestic mirror of pypi:
python3 -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
For more information on this, please refer to pypi 镜像使用帮助
docker pull oneflowinc/oneflow:nightly-cuda10.2
docker pull oneflowinc/oneflow:nightly-cuda11.2
Clone Source Code
-
git clone https://github.com/Oneflow-Inc/oneflow --depth=1
-
If you are in China, please download OneFlow source code from: https://oneflow-public.oss-cn-beijing.aliyuncs.com/oneflow-src.zip
curl https://oneflow-public.oss-cn-beijing.aliyuncs.com/oneflow-src.zip -o oneflow-src.zip unzip oneflow-src.zip
Build OneFlow
-
Please refer to this repo
-
-
Pull the docker image:
docker pull oneflowinc/manylinux2014_x86_64_cuda11.2
-
Follow the instructions in the bare metal build guide below.
-
-
-
Install dependencies (not required if you are using docker):
- on Ubuntu 20.04, run:
sudo apt install -y libopenblas-dev nasm g++ gcc python3-pip cmake autoconf libtool
- on macOS, run:
brew install nasm
- on Ubuntu 20.04, run:
-
In the root directory of OneFlow source code, run:
mkdir build cd build
-
Config the project, inside
build
directory:-
If you are in China
run this to config for CUDA:
cmake .. -C ../cmake/caches/cn/cuda.cmake
run this to config for CPU-only:
cmake .. -C ../cmake/caches/cn/cpu.cmake
-
If you are not in China
run this to config for CUDA:
cmake .. -C ../cmake/caches/international/cuda.cmake
run this to config for CPU-only:
cmake .. -C ../cmake/caches/international/cpu.cmake
-
-
Build the project, inside
build
directory, run:make -j$(nproc)
-
Add oneflow to your PYTHONPATH, inside
build
directory, run:source source.sh
Please note that this change is not permanent.
-
Simple validation
python3 -m oneflow --doctor
-
Please refer to troubleshooting for common issues you might encounter when compiling and running OneFlow.
XRT
- You can check this doc to obtain more details about how to use XLA and TensorRT with OneFlow.
- Please refer to QUICKSTART
- 中文版请参见 快速上手
-
GitHub issues: any install, bug, feature issues.
-
www.oneflow.org: brand related information.
-
- QQ 群: 331883
- 微信号(加好友入交流群): OneFlowXZS
- 知乎
OneFlow was originally developed by OneFlow Inc and Zhejiang Lab.