README.md

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

    Install OneFlow

    System Requirements

    • Python >= 3.5

    • CUDA Toolkit Linux x86_64 Driver

      OneFlow CUDA Driver Version
      oneflow_cu110 >= 450.36.06
      oneflow_cu102 >= 440.33
      oneflow_cu101 >= 418.39
      oneflow_cu100 >= 410.48
      oneflow_cu92 >= 396.26
      oneflow_cu91 >= 390.46
      oneflow_cu90 >= 384.81
      oneflow_cpu N/A
      • 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.

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

      • We are sorry that due to limits on bandwidth and other resources, we could only guarantee the efficiency and stability of oneflow_cu102. We will improve it ASAP.

    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 latest release of CPU-only OneFlow:

      python3 -m pip install --find-links https://oneflow-inc.github.io/nightly oneflow_cpu --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 镜像使用帮助

    • 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

      • Option 1: Download from Aliyun

        If you are in China, please download OneFlow source code and all submodules 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
      • Option 2: Clone source code and submodules

        git clone https://github.com/Oneflow-Inc/oneflow
        cd oneflow
        git submodule update --init --recursive
      • Option 3: 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
      • For pure CPU build, please add this CMake flag -DBUILD_CUDA=OFF.
      • 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.

    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

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/Oneflow-Inc/oneflow

    发行版本 29

    v0.5.0

    全部发行版

    贡献者 72

    全部贡献者

    开发语言

    • C++ 54.3 %
    • Python 36.5 %
    • Cuda 5.9 %
    • C 2.7 %
    • CMake 0.4 %