You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2021/12/14 01:06:38 UTC
[GitHub] [tvm] ccjoechou commented on pull request #9730: [pre-RFC][BYOC] Marvell ML/AI Accelerator Integration
ccjoechou commented on pull request #9730:
URL: https://github.com/apache/tvm/pull/9730#issuecomment-993059437
Hello @tqchen, @jroesch, or any other reviewer:
We have also posted a pre-RFC ([11691](https://discuss.tvm.apache.org/t/pre-rfc-byoc-marvell-ml-ai-accelerator-integration/11691) with the same title for discussion along with this POC PR and code changes. Once we can get some feedback, we (Marvell) are going to request for a RFC via the other site https://github.com/apache/tvm-rfcs.
As the Jenkins failure, I saw the console log of this commit's Jenkins BUILD:cpu stage and I will need some help from a reviewer.
FYI - In this pre-RFC BYOC-Marvell changes, we need to define a new dmlc.json.Write() function for the writer, which is going to be called & used by the Save() function of the newly defined GraphInputNodeMrvlExt class. This is in the src/relay/backend/contrib/mrvl/graph_executor_codegen_mrvl.cc file.
However, by doing the template specialization code block at the end of the graph_executor_codegen_mrvl.cc file, it led to:
- in libtvm_runtime.so: both tvm::relay::backend::GraphOpNode and tvm::relay::backend::GraphOpNode::Save(dmlc::JSONWriter*) const are undefined in libtvm_runtime.so
- in libtvm_runtime.so: corresponding GraphOpNodeMrvlExt is defined
- but in libtvm.so: all of the above are defined
We can see the above from nm and c++filter commands below...
tvm$ nm build/libtvm_runtime.so | grep GraphOpNode
00000000001cf510 W _ZN3tvm5relay7backend11GraphOpNodeD0Ev
00000000001cf480 W _ZN3tvm5relay7backend11GraphOpNodeD1Ev
00000000001cf480 W _ZN3tvm5relay7backend11GraphOpNodeD2Ev
00000000001c87e0 T _ZN3tvm5relay7backend18GraphOpNodeMrvlExt19GetLoadedGraphAttrsB5cxx11Ev
00000000001c9500 T _ZN3tvm5relay7backend18GraphOpNodeMrvlExt4LoadEPN4dmlc10JSONReaderE
00000000001c88b0 T _ZN3tvm5relay7backend18GraphOpNodeMrvlExt9LoadAttrsEPN4dmlc10JSONReaderE
00000000001d2730 W _ZN3tvm5relay7backend18GraphOpNodeMrvlExtC1ERKS2_
00000000001d2730 W _ZN3tvm5relay7backend18GraphOpNodeMrvlExtC2ERKS2_
00000000001cf5a0 W _ZN3tvm5relay7backend18GraphOpNodeMrvlExtD0Ev
00000000001cf670 W _ZN3tvm5relay7backend18GraphOpNodeMrvlExtD1Ev
00000000001cf670 W _ZN3tvm5relay7backend18GraphOpNodeMrvlExtD2Ev
U _ZNK3tvm5relay7backend11GraphOpNode4SaveEPN4dmlc10JSONWriterE
00000000001cd1b0 W _ZNK3tvm5relay7backend18GraphOpNodeMrvlExt4TypeEv
00000000001d2aa0 W _ZNSt6vectorIN3tvm5relay7backend18GraphOpNodeMrvlExtESaIS3_EE17_M_realloc_insertIJRKS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_
00000000001cf310 W _ZNSt6vectorIN3tvm5relay7backend18GraphOpNodeMrvlExtESaIS3_EED1Ev
00000000001cf310 W _ZNSt6vectorIN3tvm5relay7backend18GraphOpNodeMrvlExtESaIS3_EED2Ev
U _ZTIN3tvm5relay7backend11GraphOpNodeE
00000000007c2ef8 V _ZTIN3tvm5relay7backend18GraphOpNodeMrvlExtE
0000000000529340 V _ZTSN3tvm5relay7backend18GraphOpNodeMrvlExtE
U _ZTVN3tvm5relay7backend11GraphOpNodeE
00000000007c30a8 V _ZTVN3tvm5relay7backend18GraphOpNodeMrvlExtE
tvm$ c++filt _ZNK3tvm5relay7backend11GraphOpNode4SaveEPN4dmlc10JSONWriterE
tvm::relay::backend::GraphOpNode::Save(dmlc::JSONWriter*) const
tvm$ c++filt _ZTIN3tvm5relay7backend11GraphOpNodeE
typeinfo for tvm::relay::backend::GraphOpNode
But in the libtvm.so file, they are defined...
tvm$ nm build/libtvm.so | grep GraphOpNodeE
00000000016782c0 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv
0000000001678190 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv
0000000001678320 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info
00000000016781d0 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED0Ev
0000000001678180 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED1Ev
0000000001678180 W _ZNSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED2Ev
000000000247c9e8 V _ZTIN3tvm5relay7backend11GraphOpNodeE
000000000247cc10 V _ZTISt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE
0000000001db58a0 V _ZTSN3tvm5relay7backend11GraphOpNodeE
0000000001db67e0 V _ZTSSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE
000000000247ccc8 V _ZTVN3tvm5relay7backend11GraphOpNodeE
000000000247ced0 V _ZTVSt23_Sp_counted_ptr_inplaceIN3tvm5relay7backend11GraphOpNodeESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE
Thus, the tests/python/unittest/test_runtime_module_load.py::test_dso_module_load runtime test failed during the Jenkins BUILD:cpu stage.
I wonder whether we (Marvell) are missing a runtime registration somewhere?
Thanks,
- Joe
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org