Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NNFusion v0.4 (JUN~) Release Plan #287

Open
16 of 56 tasks
wenxcs opened this issue Jun 25, 2021 · 0 comments
Open
16 of 56 tasks

NNFusion v0.4 (JUN~) Release Plan #287

wenxcs opened this issue Jun 25, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@wenxcs
Copy link
Member

wenxcs commented Jun 25, 2021

Release Plan for V0.4

  • Release Manager: TBD
  • Feature Freeze Date: TBD
  • Code Freeze Date:
  • Test Verification/Bug Bash:
  • Release Date:
  • Release Note:

Annotation Legend:

Mark Description
πŸƒβ€β™‚οΈ work in progress
πŸ‘ͺ work under review
βœ‹ blocked task

Feature

Python API

  • Python API workspace parameters {Turns, GPU number}: which is used by decorators to store temporary variable. [siahuat]
  • Kernel turning in sync mode [jilong]
    • Invoke Antares using CLI
  • Kernel turning process display [weicui]
    • python code to filter the process from Antares log
  • NNFusion Python wheel package [wenxiang]
  • Install Antares with NNFusion Python package
    • Provide prebuilt package for specific env: coda, ... etc
  • [Showcase] Fully automation of integration of existed workload: Install -> Running
    • import fail for resnet50.fp16 model [Constant op]
    • import fail for densenet169.fp16 model[Pad op]
    • tensorcore FP16
    • Document

Customized operator [ziming]

  • Shape inference (json field to put input/output shape) of customized operator in Python API
  • Customized kernel code {not using Antares} in Python API

Function codegen

(Output tensor to use easiest way to allocate)

  • Memory manage feature {Pytorch allocation}
    • nnfusion return a total workspace size: use a function in codegen result
    • Change memory allocator in codegen source code
    • Use PyTorch to allocate memory pool [siahuat]

Other

  • Constant folding(use onnx to do this)
  • Expose NNFusion log level option

[Not included] Code generator

In this section CG will represent our new code generator

  • Integration of CG
  • Tear down and reassemble CG as our purpose

Tensor Program level API

  • Axis fusion
  • Tensor Padding
  • Expose Variable as input shape

Schedule

  • Sparse schedule primitive: API to specify an axis as sparse loop, with a CSR data as input
  • Sparse schedule primitive: Specify dense body and its data offset
  • Primitive to unroll a sparse loop

Stretch

Mechanism

Refactor/Improvement

  • Element wise operator performance @xysmlx
  • Constant folding performance @yiyione (TBD)
    -[ ] Profiler performance
    Kernel Performance:
    • RowReduceSum Kernel performance @xysmlx
  • [Low priority] Serialization and deserialization interface
    • High level IR representation;
  • docker image support low version of cuda driver @wenxcs 3 days |
  • Investigation on GNN training @xysmlx
  • Merge Gamefusion: reduce fusion @yiyione
  • Benchmark Page @wenxcs 3 days |
  • Quant&Sparity Interface
  • CPU performance improvement
  • Android code-gen&tuning
  • Control-flow support |@xysmlx
    • python integration
  • new profiler: support different profiling information, e.g., time, kernel time provided by nvprof | @xysmlx
    • Base profiler | 5 days
    • Update existing profilers | 1 day
    • CUDA profiler: kernel time, num of __syncthreads(), num of active thread blocks, shared memory, grid/block size | 2 days
    • Kernel profiling pass | 1-2 days
  • Profiling cache DB | @xysmlx
    • DB schema and interfaces
    • Integrate with profiler
  • BlockFusion | @xysmlx
@wenxcs wenxcs added the enhancement New feature or request label Jun 25, 2021
@microsoft microsoft deleted a comment from nnfbot Jun 25, 2021
@xiayuqing0622 xiayuqing0622 pinned this issue Jun 28, 2021
@wenxcs wenxcs self-assigned this Jul 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant