• Stars
    star
    5,888
  • Rank 6,872 (Top 0.2 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.

OneFlow

OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient. With OneFlow, it is easy to:

Simple CI Nightly Docker Image Nightly Release Documentation

Latest News

Publication

  • 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}
    }
    

Install OneFlow

System Requirements

  • Linux. As for now, there is no pre-built release for macOS, Windows.

  • Python 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.

Install with Pip Package

  • To install latest stable release of OneFlow with CUDA support:

    python3 -m pip install oneflow
  • To install nightly release of OneFlow with CUDA support:

    python3 -m pip install --pre oneflow -f https://staging.oneflow.info/branch/master/cu117
  • To install other available builds for different variants:

    • Stable
      python3 -m pip install --find-links https://release.oneflow.info oneflow==0.9.0+cu117
    • Nightly
      python3 -m pip install --pre oneflow -f https://staging.oneflow.info/branch/master/[PLATFORM]
      
    • All available [PLATFORM]:
      Platform CUDA Driver Version Supported GPUs
      cu117 >= 450.80.02 GTX 10xx, RTX 20xx, A100, RTX 30xx
      cu102 >= 440.33 GTX 10xx, RTX 20xx
      cpu N/A N/A
  • 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 镜像使用帮助

Use docker image

docker pull oneflowinc/oneflow:nightly-cuda11.7

Build from Source

Clone Source Code
  • Option 1: Clone source code from GitHub

    git clone https://github.com/Oneflow-Inc/oneflow --depth=1
  • Option 2: Download from Aliyun

    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
  • Option 1: Build with Conda (recommended)

    Please refer to this repo

  • Option 2: Build in docker container (recommended)

    • Pull the docker image:

      docker pull oneflowinc/manylinux2014_x86_64_cuda11.2
    • Follow the instructions in the bare metal build guide below.

  • Option 3: Build on bare metal

    • 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
        
    • 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
      

Troubleshooting

Please refer to troubleshooting for common issues you might encounter when compiling and running OneFlow.

Advanced features

  • OneFlow-XRT: An extension for OneFlow to target third-party compiler, such as XLA, TensorRT and OpenVINO etc.

Getting Started

Documentation

Model Zoo and Benchmark

Communication

The Team

OneFlow was originally developed by OneFlow Inc and Zhejiang Lab.

License

Apache License 2.0

More Repositories

1

onediff

OneDiff: A drop-in acceleration lib for ComfyUI, HF diffusers, Stable Diffusion web UI, and other diffusion models.
Python
622
star
2

libai

LiBai(李白): A Toolbox for Large-Scale Distributed Parallel Training
Python
391
star
3

DLPerf

DeepLearning Framework Performance Profiling Toolkit
Python
275
star
4

one-yolov5

A more efficient yolov5 with oneflow backend 🎉🎉🎉
Python
213
star
5

OneFlow-Benchmark

OneFlow models for benchmarking.
Python
104
star
6

models

Models and examples built with OneFlow
Python
94
star
7

vision

Datasets, Transforms and Models specific to Computer Vision
Python
82
star
8

oneflow-documentation

oneflow documentation
HTML
68
star
9

one-glm

A more efficient GLM implementation!
Python
54
star
10

oneflow_convert

OneFlow->ONNX
Python
41
star
11

oneflow-xrt

C++
22
star
12

oneflow-yolo-doc

https://start.oneflow.org/oneflow-yolo-doc
HTML
22
star
13

serving

OneFlow Serving
C++
20
star
14

oneflow-lite

C++
18
star
15

one-fx

A toolkit for developers to simplify the transformation of nn.Module instances. It's now corresponding to Pytorch.fx.
Python
13
star
16

diffusers

Python
13
star
17

oneflow_face

Python
12
star
18

conda-env

Shell
12
star
19

flow-OpCounter

Count the FLOPs & Params of your OneFlow model.
Python
11
star
20

occl

C++
11
star
21

diffusion-benchmark

Python
11
star
22

oneflow_vision_model

Python
10
star
23

one-codegeex

Python
7
star
24

Oneflow-Model-Compression

Python
7
star
25

oneflow-api-cn

Chinese Documents of OneFlow API
Python
7
star
26

oneflow-mlu

C++
7
star
27

faster-chatglm-6b

Python
6
star
28

oneflow-hip

C++
6
star
29

OneAutoTest

Auto-Test System
Shell
5
star
30

community

Stores documents used by the OneFlow developer community
5
star
31

trt_flash_attention

C++
4
star
32

oneflow_yolov3

Python
4
star
33

get-oneflow

Build or fetch pre-build outputs of OneFlow in GitHub Actions
TypeScript
3
star
34

CoModels

Python
3
star
35

text

Data loaders and abstractions for text and NLP
Python
3
star
36

oneflow_imaginaire

Implementation of NVlabs imaginaire models in Oneflow
Python
3
star
37

utensor

C++
2
star
38

comm_network

C
2
star
39

code_film

Python
1
star
40

lesson_projects

Python
1
star
41

oneflow-insiders

Repo to collect issues of OneFlow early adopters
1
star
42

oneflow-mlu-models

Python
1
star
43

manylinux-builder

TypeScript
1
star
44

Zhusuan-Oneflow

Zhusuan with backend Oneflow
Python
1
star