Commit Graph

25 Commits

Author SHA1 Message Date
Siyuan Feng 22dbc3a932 [TVMScript] Enhance printer (#8934) 2021-09-06 14:18:24 -07:00
Siyuan Feng 8e27d6c18f fix error report on Store (#8895) 2021-09-01 17:49:12 -04:00
Siyuan Feng 2a8950b5c0 [TensorIR] Support for match_buffer from subregion (#8585)
Co-authored-by: Junru Shao <junrushao1994@gmail.com>
Co-authored-by: Bohan Hou <32121147+spectrometerHBH@users.noreply.github.com>
Co-authored-by: Ruihang Lai <lairuihangdongdong@qq.com>
Co-authored-by: Hongyi Jin <3231950289@qq.com>
Co-authored-by: Wuwei Lin <wuwei@apache.org>
2021-07-30 22:06:38 -07:00
Ruihang Lai 5012462ef8 [TensorIR][M2a] Reduction Factoring (RFactor) (#8544)
Co-authored-by: Junru Shao <junrushao1994@gmail.com>
Co-authored-by: Siyuan Feng <Hzfengsy@sjtu.edu.cn>
Co-authored-by: Bohan Hou <32121147+spectrometerHBH@users.noreply.github.com>
Co-authored-by: Hongyi Jin <3231950289@qq.com>
Co-authored-by: Wuwei Lin <wuwei@apache.org>
2021-07-30 22:04:02 -07:00
masahi bef7bf9b2b [Refactor] Remove AttrStmt with storage_scope key (#8516)
* Remove all attr::storage_scope usage

* pyformat

* fixed VTA tests

* Update TIR text printer to print storage_scope on allocate

* print storage scope in AllocateNode ReprPrinter

* Fixed accidently removed scope tag check

* remove unused function

Co-authored-by: masa <masa@pop-os.localdomain>
2021-07-29 14:29:14 -05:00
Tianqi Chen e664ef0be8 [PRINTER] Fix the repeatitive cast in scripr printing (#8531) 2021-07-24 16:53:00 +09:00
masahi 1a1be09c24 [Refactor] Remove scope attribute from Buffer class (#8463)
Co-authored-by: masa <masa@pop-os.localdomain>
2021-07-20 16:19:46 -04:00
Honghua Cao 44f1baf794 [TVMSCRIPT] Support tir.abs node in tvm script (#8488)
Co-authored-by: honghua.cao <honghua.cao@streamcomputing.com>
2021-07-16 22:13:58 -04:00
masahi 1a26733b8e [Refactor] Enforce attaching storage scope to PointerType (#8366)
* Add storage scope to ProducerRealize, always create a buffer with scope

* update schedule_ops.cc

* update schedule_postproc_to_primfunc.cc

* restore more realize_scope

This reverts commit b66c3baa54feeb8e34016713a1be21802b3296bf.

* make the default scope be "" instead of None in ir builder

* restore realize_scope visit in storage_flatten.cc

* update storage_access.cc

* make sure buffer var is of PointerType in ir builder

This reverts commit e650b6c24cabd52a073064e51c2e4fee816e88fd.

* enforce default storage scope of global

* added remap pass but does not work yet

* fixed all reduce issue

This reverts commit 8e20003c5325085ed22ee57180aca18644b3b5ab.

* simplify

* trying mitigation for aot test

* merge remaining changes from initial branch

* remove use of attr::storage_scope from codegen

* restore a visit to AttrStmt with attr::storage_scope in storage_rewrite

* disable check

* lint fix

* revert default scope to ""

* format

* fix volatile access to shared mem in lower all reduce

* fixed gpu coorporative load/store test

* pass storage scope to PointerType in tvm script parser

This reverts commit 99cfb9d18781dcfdea169d920450f9063ab18b6b.

* fixed tvmscript roundtrip test

* fixed tir flatten buffer test

* fixed test_tir_transform_hoist_if.py

* use storage scope global by default in aot_executor_codegen.cc

* add missing default storage scope in create_primfunc.cc

* restore StorageInfo struct in llvm backend

* UpdateStorageScope -> WithStorageScope

* fixed lower warp memory test

* GetStorageScope -> GetPtrStorageScope

* Enable storage scope invariant check in AttrStmt constructor

* remove GetPtrStorageScope and WithStorageScope from public header

* move RemapStorageScope to its own file

* add more method to RemapStorageScope

* update lower_thread_allreduce to use RemapStorageScope

* RemapStorageScope -> UpdatePointerStorageScope

* remove realize_scope from hybrid script

* removed realize_scope in schedule_ops

* remove realize_scope from schedule_postproc_to_primfunc

* remove remaining realize_scope usage from schedule_ops.cc

* remove realize_scope usage from storage_flatten.cc

* fixed test_tir_transform_lower_warp_memory.py following realize_scope removal

* Add storage scope to ProducerRealize, always create a buffer with scope

* update schedule_ops.cc

* update schedule_postproc_to_primfunc.cc

* restore more realize_scope

This reverts commit b66c3baa54feeb8e34016713a1be21802b3296bf.

* make the default scope be "" instead of None in ir builder

* restore realize_scope visit in storage_flatten.cc

* update storage_access.cc

* make sure buffer var is of PointerType in ir builder

This reverts commit e650b6c24cabd52a073064e51c2e4fee816e88fd.

* enforce default storage scope of global

* added remap pass but does not work yet

* fixed all reduce issue

This reverts commit 8e20003c5325085ed22ee57180aca18644b3b5ab.

* simplify

* trying mitigation for aot test

* merge remaining changes from initial branch

* remove use of attr::storage_scope from codegen

* restore a visit to AttrStmt with attr::storage_scope in storage_rewrite

* disable check

* lint fix

* revert default scope to ""

* format

* fix volatile access to shared mem in lower all reduce

* fixed gpu coorporative load/store test

* pass storage scope to PointerType in tvm script parser

This reverts commit 99cfb9d18781dcfdea169d920450f9063ab18b6b.

* fixed tvmscript roundtrip test

* fixed tir flatten buffer test

* fixed test_tir_transform_hoist_if.py

* use storage scope global by default in aot_executor_codegen.cc

* add missing default storage scope in create_primfunc.cc

* restore StorageInfo struct in llvm backend

* UpdateStorageScope -> WithStorageScope

* fixed lower warp memory test

* GetStorageScope -> GetPtrStorageScope

* Enable storage scope invariant check in AttrStmt constructor

* remove GetPtrStorageScope and WithStorageScope from public header

* move RemapStorageScope to its own file

* add more method to RemapStorageScope

* update lower_thread_allreduce to use RemapStorageScope

* RemapStorageScope -> UpdatePointerStorageScope

* remove realize_scope from hybrid script

* removed realize_scope in schedule_ops

* remove realize_scope from schedule_postproc_to_primfunc

* remove remaining realize_scope usage from schedule_ops.cc

* remove realize_scope usage from storage_flatten.cc

* fixed test_tir_transform_lower_warp_memory.py following realize_scope removal

* Address comments

* Remove blank line diff

Co-authored-by: Masahiro Masuda <masahi@129@gmail.com>
Co-authored-by: masa <masa@pop-os.localdomain>
2021-07-13 15:32:42 -04:00
Honghua Cao 513fcf4bb7 [TVMSCRIPT] TVMScript Parser support BufferSlice indices (#8408)
Co-authored-by: honghua.cao <honghua.cao@streamcomputing.com>
2021-07-09 14:33:23 -04:00
Lunderberg ee65ab7a4a [PyLint] Minor updates to pass pylint locally. (#8424)
With either the ci_lint docker image, or the matched version of
pylint==2.4.4, I got two lint errors running locally that didn't show
up in the CI.  Fixing them.

Co-authored-by: Eric Lunderberg <elunderberg@octoml.ai>
2021-07-09 10:15:19 +08:00
Honghua Cao 35d71b1211 [TVMSCRIPT] add more type support in script function parameter (#8235)
* [TVMSCRIPT] add float type support in script function

* [TVMSCRIPT] add more type support in script function parameter

Co-authored-by: honghua.cao <honghua.cao@streamcomputing.com>
2021-06-23 17:05:05 +08:00
Tristan Konolige 96a7a5811f [TVMSCRIPT] Fix printing of rank 0 buffer access (#8215)
* [TVMSCRIPT] Fix printing of rank 0 buffer access

Also improve error messages and fix min/max/Select.

* fixes

* return fix

* remove print
2021-06-16 10:26:01 -07:00
Honghua Cao 55459e74dd [TVMSCRIPT] Add tir.min node in tvm script (#8219)
Co-authored-by: honghua.cao <honghua.cao@streamcomputing.com>
2021-06-09 09:52:28 -04:00
Mehrdad Hessar a1cd6d51b8 fix py files (#8194) 2021-06-04 23:22:46 +01:00
Siyuan Feng 22c8f8cca5 [TensorIR][Pass][M1c] FlattenBuffer (#7962)
Co-authored-by: Tianqi Chen <tqchen@users.noreply.github.com>
Co-authored-by: Ruihang Lai <lairuihangdongdong@qq.com>
2021-05-03 10:28:28 -07:00
Manupa Karunaratne 1fb32b0551 [TIR] An analysis pass to calculate workspace size for primfuncs (#7859)
* Add workspace size calculation for primfuncs

This commit introduces functionality to query the workspace size
as required by a tir primfunc by looking at tir.allocates inside of it

Change-Id: I6f8ca90408b6e35d17ec818998a0f158a268a2a6

* Add workspace size calculation for primfuncs

*change int --> size_t

Change-Id: If7fafec0269937d70184e7696e44386b74116d86

* Add workspace size calculation for primfuncs

* int --> size_t change for analysis.h

Change-Id: I9e5c5e5f8458663390c50cf56f1a11910687928d

* Add workspace size calculation for primfuncs

* lambda scope fix

Change-Id: I0c9b4c529150de8e0a5e170887cc935b7d0f6af2

Co-authored-by: Chenfan <jcf94@outlook.com>
2021-04-18 20:21:32 +08:00
Siyuan Feng 7f567264ae [TensorIR] [Script] adding support for opaque block (#7829)
* change complete tag

* add parsing support for opaque block

* address and add testcase

* address

* address
2021-04-13 14:08:48 -07:00
Siyuan Feng fffed0ff91 [TensorIR] TVMScript Parser/Printer (#7630)
Co-authored-by: Bohan Hou <32121147+spectrometerHBH@users.noreply.github.com>
Co-authored-by: Junru Shao <junrushao1994@gmail.com>
Co-authored-by: Tianqi Chen <tqchen@users.noreply.github.com>
Co-authored-by: Ruihang Lai <lairuihangdongdong@qq.com>
Co-authored-by: Hongyi Jin <3231950289@qq.com>
Co-authored-by: Wuwei Lin <wuwei@apache.org>
Co-authored-by: Tristan Konolige <tristan.konolige@gmail.com>
Co-authored-by: Cody Yu <comaniac0422@gmail.com>
2021-03-20 16:22:53 -04:00
Tianqi Chen 7340c02d0e [TIR][REFACTOR] ForNode introduce thread binding and remove legacy field (#7306)
[TIR][REFACTOR] ForNode update

- Remove deprecated device_api.
- Add ThreadBinding for_type.
- Add additional annotations.

More style consistency refactor to make the ForNode
to be consistent with rest of the codebase.

- ForType => ForKind
- Add constant prefix k to enum consts per Google C style
- Introduce ForKind to the python side.
2021-01-18 23:00:11 -08:00
Tianqi Chen d777e7c612 [TIR][REFACTOR] Enforce allocate to use the correct var pointer hint. (#7216)
* [TIR][REFACTOR] Enforce allocate to only accept buffer_var with correct PtrType.

This is a refactoring step to cleanup legacy issue of opaque buffer
var without ptr type information. Now all the allocation comes with the right
pointer data type. Places touched:

- TVMScript Parser: add the right info to get the correct pointer type.
- Cross thread all reduce: set the right pointer type.
- Storage rewrite: setup the right pointer type.
- Custom dtype: remap the variables with new pointer type.

x

* Address comments

Co-authored-by: Tristan Konolige <tristan.konolige@gmail.com>

Co-authored-by: Tristan Konolige <tristan.konolige@gmail.com>
2021-01-06 16:59:12 -08:00
Tristan Konolige fdfc7eb887 [TVMSCRIPT] Attach span information to tir nodes in tvmscript (#6910) 2020-12-04 20:03:08 -05:00
Tristan Konolige d164aac058 [TVMSCRIPT] Using diagnostics for TVM Script (#6797)
* [TVMSCRIPT] Using diagnostics for TVM Script

* fix lint

* More documentation, improve some error messages

* Apply suggestions from code review

Co-authored-by: Leandro Nunes <leandron85@gmail.com>

* Add synr to ci setup and setup.py

* remove typed_ast dependency

Co-authored-by: Leandro Nunes <leandron85@gmail.com>
2020-11-05 19:24:32 -05:00
Bohan Hou 129333b717 [TVMScript] refactor (#6734)
* [TVMScript] refactor

* [TVMScript] pylint

* [TVMScript] pylint
2020-10-22 06:59:31 -07:00
Tristan Konolige c662638772 Rename tvm.hybrid.script to tvm.script. (#6522) 2020-09-26 15:32:08 -07:00