Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

[RoadMap] Legacy issue resolution before 1.0 release #7319

@piiswrong

Description

@piiswrong

We are working on multiple new features and refactors (gluon, sparse, engine, etc) towards an 1.0 release. But there are also some legacy issues that needs to be resolved. Here is a list of issues I have noted. Feel free to raise new issues or contribute fixes.

@mli @tqchen @eric-haibin-lin @reminisce @asmushetzel @jermainewang @ptrendx

Basic

  • Sort out int32, int64, index_t, mx_uint etc.
    Currently TShape uses int64_t but the front-end and back-end interface still use uint32_t for indices.
    This need cleaning up and int64_t interface need to be exposed through a new set of CAPI. The general policy going forward should be to use int64_t for indices/size and int32_t for number of dimensions. Signed int should be used for function arguments unless there is a really strong reason to use unsigned.
    Most indexing related interface should support negative indexing.
  • Deprecate mshadow.
    Remove usage of mshadow template evaluations and replace with Kernel::Launch or hand written cpu/gpu kernels.
  • Verify type and shape support for operators.
    Currently some operators don't support types other than fp32 for legacy reasons. Proper type support and/or documentation should be added.
    Currently some operators have limit support for tensor ranks (maximum 5 dims). The limit needs to be increased or removed if possible.
  • move legacy operators to new nnvm registration.
    Conv, FC, BN etc should be refactored into stateless operators and use thread_local to store cudnn tensor descriptors.
  • remove mkl experimental and use the new storage type interface.

Stretch goals

  • Support pybind11 or cython interface for faster python API.
  • Use variant type instead of string for operator argument parsing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions