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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
