SpRegTiling / sparse-register-tiling

9 stars 2 forks source link

Build error: get_executor_id #2

Closed reikdas closed 8 months ago

reikdas commented 8 months ago

When I tried to generate the executor/scheduler pairs, I got -

das160@bigdata2:/scratch1/das160/sparse-register-tiling/spmm_nano_kernels$ python3 -m codegen.generate_ukernels
/scratch1/das160/sparse-register-tiling/spmm_nano_kernels/generated
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
mapping_61fee.txt -> None
/scratch1/das160/sparse-register-tiling/spmm_nano_kernels/generated
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
mapping_da01e.txt -> None
/scratch1/das160/sparse-register-tiling/spmm_nano_kernels/generated
mapping_400fa.txt -> None
mapping_400fa.txt -> None
mapping_400fa.txt -> None
mapping_400fa.txt -> None
mapping_400fa.txt -> None
mapping_400fa.txt -> None
mapping_400fa.txt -> None
/scratch1/das160/sparse-register-tiling/spmm_nano_kernels/generated
mapping_747f9.txt -> None
mapping_747f9.txt -> None
mapping_747f9.txt -> None
mapping_747f9.txt -> None
mapping_747f9.txt -> None
mapping_747f9.txt -> None
mapping_747f9.txt -> None

Is that expected?

Then, when I tried to build the demo code, I got the error -

[ 59%] Linking CXX executable SPMM_demo
/usr/bin/ld: CMakeFiles/SPMM_demo.dir/__/src/spmm/runtime_yaml_config.cpp.o: in function `get_method_id_mapping<float>()::{lambda(c4::yml::ConstNodeRef)#6}::operator()[abi:cxx11](c4::yml::ConstNodeRef) const::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, SpMMTask<float>&)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, SpMMTask<float>&) const':
runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_[_ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_]+0xcf): undefined reference to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)'
/usr/bin/ld: runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_[_ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_]+0x26a): undefined reference to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)'
/usr/bin/ld: runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_[_ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_]+0x4d2): undefined reference to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)'
/usr/bin/ld: runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_[_ZZZ21get_method_id_mappingIfERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IfEE_clESI_SZ_]+0x652): undefined reference to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)'
/usr/bin/ld: CMakeFiles/SPMM_demo.dir/__/src/spmm/runtime_yaml_config.cpp.o: in function `get_method_id_mapping<double>()::{lambda(c4::yml::ConstNodeRef)#6}::operator()[abi:cxx11](c4::yml::ConstNodeRef) const::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, SpMMTask<double>&)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, SpMMTask<double>&) const':
runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIdERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IdEE_clESI_SZ_[_ZZZ21get_method_id_mappingIdERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IdEE_clESI_SZ_]+0xcf): undefined reference to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)'
/usr/bin/ld: CMakeFiles/SPMM_demo.dir/__/src/spmm/runtime_yaml_config.cpp.o:runtime_yaml_config.cpp:(.text._ZZZ21get_method_id_mappingIdERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IdEE_clESI_SZ_[_ZZZ21get_method_id_mappingIdERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFS7_IFP11SpMMFunctorIT_ES0_IS6_S6_St4lessIS6_ESaISt4pairIKS6_S6_EEER8SpMMTaskIS9_EEEN2c43yml12ConstNodeRefEEESD_SaISE_ISF_SS_EEEvENKUlSQ_E4_clB5cxx11ESQ_ENKUlSI_RSJ_IdEE_clESI_SZ_]+0x26a): more undefined references to `get_executor_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)' follow
collect2: error: ld returned 1 exit status
make[3]: *** [cpp_testbed/demo/CMakeFiles/SPMM_demo.dir/build.make:539: cpp_testbed/demo/SPMM_demo] Error 1
make[3]: Leaving directory '/scratch1/das160/sparse-register-tiling/release-build'
make[2]: *** [CMakeFiles/Makefile2:493: cpp_testbed/demo/CMakeFiles/SPMM_demo.dir/all] Error 2
make[2]: Leaving directory '/scratch1/das160/sparse-register-tiling/release-build'
make[1]: *** [CMakeFiles/Makefile2:500: cpp_testbed/demo/CMakeFiles/SPMM_demo.dir/rule] Error 2
make[1]: Leaving directory '/scratch1/das160/sparse-register-tiling/release-build'
make: *** [Makefile:234: SPMM_demo] Error 2
make: Leaving directory '/scratch1/das160/sparse-register-tiling/release-build'

It seems like the get_executor_id from https://github.com/LucasWilkinson/spmm-nano-kernels/blob/main/codegen/generate_mapping.py might not have been properly generated?

cheshmi commented 8 months ago

Can you please confirm that sparse-register-tiling/spmm_nano_kernels/ is not empty? I want to make sure that the submodule is cloned. It is expected to see all files/folders in here.

reikdas commented 8 months ago

No, it isn't empty.

das160@bigdata2:/scratch1/das160/sparse-register-tiling$ cd spmm_nano_kernels/
das160@bigdata2:/scratch1/das160/sparse-register-tiling/spmm_nano_kernels$ ls
CMakeLists.txt  codegen  generated  include  __init__.py  mappings  orig_mappings  src  third_party
reikdas commented 8 months ago

Sorry, the error was that I generated the kernels in spmm_nano_kernels after I configured CMake. Sorry for the inconvenience.