README.md 6.3 KB
Newer Older
S
strint 已提交
1
**OneFlow is a performance-centered and open-source deep learning framework.**
S
strint 已提交
2 3 4 5

## Install OneFlow

  ### System Requirements
6

S
Shenghang Tsai 已提交
7
  - Python 3.6, 3.7, 3.8
S
Shenghang Tsai 已提交
8 9
  - CUDA Toolkit Linux x86_64 Driver

S
Shenghang Tsai 已提交
10 11
    - 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](https://docs.nvidia.com/deploy/cuda-compatibility/index.html).

S
Shenghang Tsai 已提交
12
    - Please upgrade your Nvidia driver to version 440.33 or above and install OneFlow for CUDA 10.2 if possible.
S
Shenghang Tsai 已提交
13

S
strint 已提交
14
  ### Install with Pip Package
15

S
Shenghang Tsai 已提交
16
  - To install latest stable release of OneFlow with CUDA support:
17

S
Shenghang Tsai 已提交
18 19
    ```bash
    python3 -m pip install -f https://release.oneflow.info oneflow==0.4.0+cu102 --user
20
    ```
21

S
Shenghang Tsai 已提交
22
  - To install nightly release of OneFlow with CUDA support:
S
Shenghang Tsai 已提交
23
    ```bash
S
Shenghang Tsai 已提交
24 25 26 27
    python3 -m pip install oneflow --user -f https://staging.oneflow.info/branch/master/cu102
    ```

  - To install other available builds for different variants:
S
Shenghang Tsai 已提交
28 29 30 31 32 33 34 35 36 37 38
    - Stable
      ```bash
      python3 -m pip install --find-links https://release.oneflow.info oneflow==0.4.0+[PLATFORM] --user
      ```
    - Nightly
      ```
      python3 -m pip install oneflow --user -f https://staging.oneflow.info/branch/master/[PLATFORM]
      ```
    - All available `[PLATFORM]`:
      | Platform |CUDA Driver Version| Supported GPUs |
      |---|---|---|
39
      | cu112  | >= 450.80.02  | GTX 10xx, RTX 20xx, A100, RTX 30xx |
S
Shenghang Tsai 已提交
40 41 42 43 44 45
      | cu111  | >= 450.80.02  | GTX 10xx, RTX 20xx, A100, RTX 30xx |
      | cu110, cu110_xla  | >= 450.36.06  | GTX 10xx, RTX 20xx, A100|
      | cu102, cu102_xla  | >= 440.33  | GTX 10xx, RTX 20xx |
      | cu101, cu101_xla  | >= 418.39  | GTX 10xx, RTX 20xx |
      | cu100, cu100_xla  | >= 410.48  | GTX 10xx, RTX 20xx |
      | cpu  | N/A | N/A |
46

S
Shenghang Tsai 已提交
47 48 49 50 51 52
  - 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 镜像使用帮助](https://mirror.tuna.tsinghua.edu.cn/help/pypi/)

S
strint 已提交
53
### Build from Source
S
Shenghang Tsai 已提交
54 55
<details>
<summary>Clone Source Code</summary>
56

S
Shenghang Tsai 已提交
57
- #### Option 1: Clone source code from GitHub
H
Houjiang Chen 已提交
58

S
Shenghang Tsai 已提交
59 60 61
  ```bash
  git clone https://github.com/Oneflow-Inc/oneflow --depth=1
  ```
S
Shenghang Tsai 已提交
62

S
Shenghang Tsai 已提交
63
- #### Option 2: Download from Aliyun
S
Shenghang Tsai 已提交
64

S
Shenghang Tsai 已提交
65
  If you are in China, please download OneFlow source code from: https://oneflow-public.oss-cn-beijing.aliyuncs.com/oneflow-src.zip
66

S
Shenghang Tsai 已提交
67 68 69 70 71
  ```bash
  curl https://oneflow-public.oss-cn-beijing.aliyuncs.com/oneflow-src.zip -o oneflow-src.zip
  unzip oneflow-src.zip
  ```
</details>
H
Houjiang Chen 已提交
72

S
Shenghang Tsai 已提交
73
<details>
74
<summary>Build OneFlow</summary>
H
Houjiang Chen 已提交
75

76 77 78 79
- #### Option 1: Build with Conda (recommended)
  Please refer to [this repo](https://github.com/Oneflow-Inc/conda-env)

- #### Option 2: Build in docker container (recommended)
S
Shenghang Tsai 已提交
80
  - In the root directory of OneFlow source code, run:
81

S
Shenghang Tsai 已提交
82 83 84
    ```
    python3 docker/package/manylinux/build_wheel.py
    ```
85

S
Shenghang Tsai 已提交
86
    This should produce `.whl` files in the directory `wheelhouse`
87

S
Shenghang Tsai 已提交
88
  - If you are in China, you might need to add these flags:
89

S
Shenghang Tsai 已提交
90 91 92
    ```
    --use_tuna --use_system_proxy --use_aliyun_mirror
    ```
93

S
Shenghang Tsai 已提交
94
  - You can choose CUDA/Python versions of wheel by adding:
95

S
Shenghang Tsai 已提交
96 97 98
    ```
    --cuda_version=10.1 --python_version=3.6,3.7
    ```
99

S
Shenghang Tsai 已提交
100
  - For more useful flags, plese run the script with flag `--help` or refer to the source code of the script.
101

102
- #### Option 3: Build on bare metal
S
Shenghang Tsai 已提交
103 104 105 106 107 108
  - Install dependencies. For instance, on Ubuntu 20.04, run:
    ```
    sudo apt install -y libmkl-full-dev nasm libc++-11-dev libncurses5 g++ gcc cmake gdb python3-pip
    ```
    If there is a prompt, it is recommended to select the option to make mkl the default BLAS library.
  - In the root directory of OneFlow source code, run:
109

S
Shenghang Tsai 已提交
110 111 112 113 114
    ```
    mkdir build
    cd build
    cmake ..
    make -j$(nproc)
115 116 117 118 119 120 121 122 123 124 125 126 127 128
    ```

  - Add oneflow to your PYTHONPATH

    ```
    source build/source.sh
    ```

    Please note that this change is not permanent.

  - Simple validation

    ```
    python3 -m oneflow --doctor
S
Shenghang Tsai 已提交
129
    ```
H
Houjiang Chen 已提交
130

131
  - If you are in China, please add these CMake flags `-DTHIRD_PARTY_MIRROR=aliyun -DPIP_INDEX_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple` for faster dependency downloads.
S
Shenghang Tsai 已提交
132 133
  - For pure CPU build, please add this CMake flag `-DBUILD_CUDA=OFF`.
</details>
S
Shenghang Tsai 已提交
134

135
### Troubleshooting
H
Houjiang Chen 已提交
136

S
Shenghang Tsai 已提交
137
Please refer to [troubleshooting](docs/source/troubleshooting.md) for common issues you might encounter when compiling and running OneFlow.
H
Houjiang Chen 已提交
138

S
strint 已提交
139
### Advanced features
S
Shenghang Tsai 已提交
140 141
<details>
<summary>XRT</summary>
H
Houjiang Chen 已提交
142

S
Shenghang Tsai 已提交
143 144
- You can check this [doc](oneflow/xrt/README.md) to obtain more details about how to use XLA and TensorRT with OneFlow.
</details>
S
strint 已提交
145 146

## Getting Started
S
Shenghang Tsai 已提交
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
<details>
<summary>3 minutes to run MNIST.</summary>

- Clone the demo code from OneFlow documentation
  ```
  git clone https://github.com/Oneflow-Inc/oneflow-documentation.git
  cd oneflow-documentation/cn/docs/code/quick_start/
  ```
- Run it in Python
  ```
  python mlp_mnist.py
  ```

- Oneflow is running and you got the training loss
  ```
  2.7290366
  0.81281316
  0.50629824
  0.35949975
  0.35245502
  ...
  ```
- More info on this demo, please refer to [doc on quick start](http://docs.oneflow.org/quick_start/quickstart_in_3_min.html).
</details>
S
strint 已提交
171 172

## Documentation
S
Shenghang Tsai 已提交
173 174 175
- [API Reference](https://oneflow.readthedocs.io/en/master/)
- [Usage & Design Docs](http://docs.oneflow.org/)
- [System Design](https://github.com/Oneflow-Inc/oneflow-documentation/blob/master/en/docs/basics_topics/essentials_of_oneflow.md)
S
strint 已提交
176 177

## Model Zoo and Benchmark
S
Shenghang Tsai 已提交
178 179 180 181 182
- [OneFlow-Benchmark](https://github.com/Oneflow-Inc/OneFlow-Benchmark)
- [GPT](https://github.com/Oneflow-Inc/OneFlow-Benchmark/tree/master/LanguageModeling/GPT)
- [CNNs(ResNet-50, VGG-16, Inception-V3, AlexNet)](https://github.com/Oneflow-Inc/OneFlow-Benchmark/tree/master/Classification/cnns)
- [Wide&Deep](https://github.com/Oneflow-Inc/OneFlow-Benchmark/tree/master/ClickThroughRate/WideDeepLearning)
- [BERT](https://github.com/Oneflow-Inc/OneFlow-Benchmark/tree/master/LanguageModeling/BERT)
S
strint 已提交
183 184

## Communication
S
Shenghang Tsai 已提交
185 186
- [GitHub issues](https://github.com/Oneflow-Inc/oneflow/issues) : any install, bug, feature issues.
- [www.oneflow.org](http://www.oneflow.org) : brand related information.
S
strint 已提交
187 188 189 190 191 192

## The Team
OneFlow was originally developed by [OneFlow Inc](http://www.oneflow.org) and [Zhejiang Lab](http://www.zhejianglab.com/).

## License
[Apache License 2.0](LICENSE)