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

Merge with Apache/incubator-tvm #71

Merged
merged 61 commits into from
Jan 9, 2020
Merged

Conversation

zhiics
Copy link

@zhiics zhiics commented Dec 31, 2019

NOTE: NNVM is removed in this merge. We need to see what impacts it will bring us before we merge.

Also, I updated the upstream URL in sync-with-dmlc.py

zhiics and others added 30 commits December 30, 2019 18:25
* Fix bias_add gradient

A change caused collapse_sum_like to reject implicit dimension
broadcasting for bias_add gradient, so switch to explicit sum reduction
on the non-bias axis dimensions.

* Lint fix
* Use the best tuner possible

* Add comment denoting availability of better tuners

* Fix typos and wording
* Update legacy places from nnvm to relay.

This PR prepares the current mainline to remove nnvm compiler dep.

* remove legacy stage
* Add Expand to onnx.py

* add test function for expand

* Fix a onnx frontend test

* Add tests for the value itself instead of shape only on test_expand

* Cleaned up some unnecessary modifications.
One of the loops in hybrid_nms used for
performing the max_output_size reordering
was incorrectly designated as parallel
resulting in incorrect behaviour. This patch
changes that loop to a serial loop.

Change-Id: I97184f5887f5f028d8ab339fa2808eb7630a4017
…4554)

* [DOCS] Mention Ninja build system in install/from_source.rst

* Address comments
* [PYTHON][FFI] Cythonize NDArray.copyto

* Cythonize the shape property
* [VTA] improved virtual memory mapping

* Update virtual_memory.cc
dtype.h -> runtime/data_type.h

Changes:
- Rename all old reference of tvm::Type to DataType
- ExprNode.type -> ExprNode.dtype
- Expr.type() -> Expr.dtype()
- Change Expr related functions to expr_operator.
  - DataType::min() -> min_value(DataType)
  - DataType::max() -> max_value(DataType)
- Move type constructor Int, UInt, Float, Handle, Bool into DataType.
  - Int(bits) -> DataType::Int(bits)
  - UInt(bits) -> DataType::UInt(bits)
* [TEST] Remove nnvm related code in topi and test script

* Remove docs dep
* [Relay] add max_pool3d in relay and TF converter

* fix comments
KnowingNothing and others added 15 commits December 30, 2019 18:33
* [TOPI] add 3D upsampling Op.

* fix lint issues

* change align_corners to coordinate_transformation_mode

* fix resize3d half_pixel

* make a simple function and clean up trilinear_resize3d_python

* fix doc
…pache#4484)

* [FRONTEND][TF] conv3d_transpose 'SAME' support kernel more than 1x1

* revised per as review comments

* add more fallback wolkaround to make all tests pass
…he#4598)

* [GraphRuntime] Support parameter out in the graph runtime debug

* Dummy commit to trigger build
…he#4550)

* cublaslt added

* fix lint

* address comments

* address more comments

* Trigger CI

* Trigger CI
…che#4581)

* [REFACTOR][RUNTIME] Move NDArray to Object System.

Previously NDArray has its own object reference counting mechanism.
This PR migrates NDArray to the unified object protocol.

The calling convention of NDArray remained intact.
That means NDArray still has its own type_code and
its handle is still DLTensor compatible.

In order to do so, this PR added a few minimum runtime type
detection in TVMArgValue and RetValue only when the corresponding
type is a base type(ObjectRef) that could also refer to NDArray.

This means that even if we return a base reference object ObjectRef
which refers to the NDArray. The type_code will still be translated
correctly as kNDArrayContainer.
If we assign a non-base type(say Expr) that we know is not compatible
with NDArray during compile time, no runtime type detection will be performed.

This PR also adopts the object protocol for NDArray sub-classing and
removed the legacy NDArray subclass protocol.
Examples in apps/extension are now updated to reflect that.

Making NDArray as an Object brings all the benefits of the object system.
For example, we can now use the Array container to store NDArrays.

* Address review comments
@hcho3
Copy link

hcho3 commented Jan 8, 2020

CI is back online. Re-triggering tests.

@zhiics
Copy link
Author

zhiics commented Jan 8, 2020

@hcho3 Great. Thanks.

@zhiics
Copy link
Author

zhiics commented Jan 9, 2020

This update contains commits from 10 day ago from TVM. I resolved many conflicts during this merge because NNVM is deleted. I think it is good for now. We may need to have a separate merge to have the latest TVM because we've refactored a lot recently.

@zhiics zhiics merged commit 303a471 into neo-ai:dev Jan 9, 2020
@zhiics zhiics deleted the update_neo_ai_tvm branch January 9, 2020 17:56
zhiics added a commit that referenced this pull request Jan 10, 2020
@zhiics zhiics restored the update_neo_ai_tvm branch January 10, 2020 22:34
zhiics added a commit that referenced this pull request Jan 10, 2020
@zhiics zhiics deleted the update_neo_ai_tvm branch January 13, 2020 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.