MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow

github.com/Oneflow-Inc/oneflow @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
35,604 symbols 121,252 edges 3,828 files 2,650 documented · 7% updated 7mo agov1.0.0 · 2024-03-11★ 9,409465 open issues

Browse by type

Functions 28,456 Types & classes 6,969 Endpoints 179
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

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

bash python3 -m pip install oneflow

  • To install nightly release of OneFlow with CUDA support:

bash python3 -m pip install --pre oneflow -f https://oneflow-staging.oss-cn-beijing.aliyuncs.com/branch/master/cu118

  • To install other available builds for different variants:

  • Stable bash python3 -m pip install --find-links https://release.oneflow.info oneflow==0.9.0+cu118

  • Nightly python3 -m pip install --pre oneflow -f https://oneflow-staging.oss-cn-beijing.aliyuncs.com/branch/master/[PLATFORM]
  • All available [PLATFORM]: | Platform |CUDA Driver Version| Supported GPUs | |---|---|---| | cu118 | >= 450.80.02 | GTX 10xx, RTX 20xx, A100, RTX 30xx | | 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

bash 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

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

    bash 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

Core symbols most depended-on inside this repo

Shape

Method 21,483
Function 6,973
Class 6,891
Route 179
Enum 78

Languages

C++69%
Python31%
C1%

Modules by API surface

oneflow/core/functional/impl/math_functor.cpp530 symbols
oneflow/core/functional/impl/array_functor.cpp428 symbols
oneflow/core/functional/impl/nn_functor.cpp401 symbols
oneflow/user/kernels/math_unary_elementwise_func.h300 symbols
oneflow/core/framework/tensor.h247 symbols
oneflow/extension/stack/stacktrace.h230 symbols
oneflow/core/ep/common/primitive/binary_functor.h225 symbols
oneflow/core/ep/common/primitive/unary_functor.h196 symbols
oneflow/core/functional/impl/nn_grad_functor.cpp167 symbols
python/oneflow/test/modules/test_activation.py135 symbols
oneflow/core/functional/impl/activation_functor.cpp131 symbols
python/oneflow/test/modules/test_eager_boxing.py126 symbols

For agents

$ claude mcp add oneflow \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page