github

Oneflow-Inc / oneflow

  • понедельник, 3 августа 2020 г. в 00:21:49
https://github.com/Oneflow-Inc/oneflow

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



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

Install OneFlow

System Requirements

  • Python >= 3.5
  • Nvidia Linux x86_64 driver version >= 440.33

Install with Pip Package

  • To install latest release of OneFlow with CUDA support:

    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu102 --user
    
  • To install OneFlow with legacy CUDA support, run one of:

    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu101 --user
    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu100 --user
    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu92 --user
    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu91 --user
    python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cu90 --user
    
  • 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 镜像使用帮助

  • Support for latest stable version of CUDA will be prioritized. Please upgrade your Nvidia driver to version 440.33 or above and install oneflow_cu102 if possible. For more information, please refer to CUDA compatibility documentation.

  • CPU-only OneFlow is not available for now.

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

Build from Source

  1. System Requirements to Build OneFlow

    • Please use a newer version of CMake to build OneFlow. You could download cmake release from here.

    • Please make sure you have G++ and GCC >= 4.8.5 installed. Clang is not supported for now.

    • To install dependencies, run:

      yum-config-manager --add-repo https://yum.repos.intel.com/setup/intelproducts.repo && \
      rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \
      yum update -y && yum install -y epel-release && \
      yum install -y intel-mkl-64bit-2020.0-088 nasm swig rdma-core-devel
      

      On CentOS, if you have MKL installed, please update the environment variable:

      export LD_LIBRARY_PATH=/opt/intel/lib/intel64_lin:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
      

      If you don't want to build OneFlow with MKL, you could install OpenBLAS:

      sudo yum -y install openblas-devel
      
  2. Clone Source Code

    Clone source code and submodules (faster, recommended)

    git clone https://github.com/Oneflow-Inc/oneflow
    cd oneflow
    git submodule update --init --recursive
    

    Or you could also clone the repo with --recursive flag to clone third_party submodules together

    git clone https://github.com/Oneflow-Inc/oneflow --recursive
    
  3. Build and Install OneFlow

    cd build
    cmake ..
    make -j$(nproc)
    make pip_install
    

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

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