GithubHelp home page GithubHelp logo

org-mars / oneflow Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oneflow-inc/oneflow

0.0 1.0 0.0 34.13 MB

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

Home Page: http://www.oneflow.org

License: Apache License 2.0

CMake 0.44% C++ 59.47% Cuda 5.84% C 4.56% Python 29.46% Shell 0.14% Dockerfile 0.09%

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

    OneFlow CUDA Driver Version
    oneflow_cu111 >= 450.80.02
    oneflow_cu110 >= 450.36.06
    oneflow_cu102 >= 440.33
    oneflow_cu101 >= 418.39
    oneflow_cu100 >= 410.48
    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://release.oneflow.info oneflow_cu102 --user
    
  • To install master branch release of OneFlow with CUDA support:

    python3 -m pip install --find-links https://staging.oneflow.info/branch/master oneflow_cu102 --user
    
  • 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. 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 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. On CentOS:

      sudo yum -y install openblas-devel
      

      On Ubuntu:

      sudo apt install -y libopenblas-dev
      
  2. Clone Source Code

  3. Build and Install OneFlow

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

        python3 docker/package/manylinux/build_wheel.py
        

        This should produces .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

      • 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

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

Watchers

 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.