Giter VIP home page Giter VIP logo

oneflow's Introduction

OneFlow is a performance-centered and open-source deep learning framework.

Install OneFlow

System Requirements

  • Python >= 3.5

  • 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 -f https://release.oneflow.info oneflow_cu102 --user
    
  • To install nightly release of OneFlow with CUDA support:

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

    python3 -m pip install oneflow --user -f https://staging.oneflow.info/branch/master/[PLATFORM]
    

    All available [PLATFORM]:

    Platform CUDA Driver Version Supported GPUs
    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
  • To install latest release of CPU-only OneFlow:

    python3 -m pip install --find-links https://release.oneflow.info oneflow_cpu --user
    
  • To install legacy version of OneFlow with CUDA support:

    python3 -m pip install --find-links https://release.oneflow.info oneflow_cu102==0.3.1 --user
    

    Some legacy versions available: 0.1.10, 0.2.0, 0.3.0, 0.3.1

  • 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 镜像使用帮助

  • Releases are built with G++/GCC 4.8.5, cuDNN 7 and MKL 2020.0-088.

Build from Source

  1. 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
  2. Build and Install OneFlow

    • Option 1: Build in docker container (recommended)

      • In the root directory of OneFlow source code, run:

        python3 docker/package/manylinux/build_wheel.py
        

        This should produce .whl files in the directory wheelhouse

      • If you are in China, you might need to add these flags:

        --use_tuna --use_system_proxy --use_aliyun_mirror
        
      • You can choose CUDA/Python versions of wheel by adding:

        --cuda_version=10.1 --python_version=3.6,3.7
        
      • For more useful flags, plese run the script with flag --help or refer to the source code of the script.

    • Option 2: Build on bare metal

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

        mkdir build
        cd build
        cmake ..
        make -j$(nproc)
        make pip_install
        
      • If you are in China, please add this CMake flag -DTHIRD_PARTY_MIRROR=aliyun to speed up the downloading procedure for some dependency tar files.

      • For pure CPU build, please add this CMake flag -DBUILD_CUDA=OFF.

Troubleshooting

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

Advanced features

  • XRT

    You can check this doc to obtain more details about how to use XLA and TensorRT with OneFlow.

Getting Started

3 minutes to run MNIST.

  1. 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/
  1. Run it in Python
python mlp_mnist.py
  1. 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.

Documentation

Usage & Design Docs

API Reference

OneFlow System Design

For those who would like to understand the OneFlow internals, please read the document below:

Model Zoo and Benchmark

CNNs(ResNet-50, VGG-16, Inception-V3, AlexNet)

Wide&Deep

BERT

Communication

  • GitHub issues : any install, bug, feature issues.
  • www.oneflow.org : brand related information.

Contributing

The Team

OneFlow was originally developed by OneFlow Inc and Zhejiang Lab.

License

Apache License 2.0

oneflow's People

Contributors

willzhang4a58 avatar lixinqi avatar jackalcooper avatar chengtbf avatar liujuncheng avatar leaves-zwx avatar scxfjiang avatar wind5 avatar guo-ran avatar junior-talk avatar yuanms2 avatar clackhan avatar daquexian avatar ouyangyu avatar shawnxuan avatar dounm avatar zyeric avatar duduscript avatar bbuf avatar dssgsra avatar hjchen2 avatar mard1no avatar poohrui avatar spwlyzx avatar ldpe2g avatar shangguanshiyuan avatar flowingsun007 avatar wyg1997 avatar doombeaker avatar sh-tsai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.