nvlink error : Undefined reference to '_ZNK14AggregateDatumIN4nest12ConnectionIDEXadL_ZNS0_10NestModule14ConnectionTypeEEEE5printERSo' in '/tmp/event_delivery_manager-656e32.cubin'

Hi,

Locally creating an object under the target region causes nvlink
errors (same code builds fine without offloading support flags):

nvlink error : Undefined reference to ‘_ZNK14AggregateDatumIN4nest12ConnectionIDEXadL_ZNS0_10NestModule14ConnectionTypeEEEE5printERSo’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNK14AggregateDatumIN4nest12ConnectionIDEXadL_ZNS0_10NestModule14ConnectionTypeEEEE6pprintERSo’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNK5Datum4infoERSo’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘__assert_fail’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘ZN4nest12ConnectionIDC2ERKS0’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_Znam’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest19WeightRecorderEventclEv’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN3sli4pool4growEm’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZSt20__throw_length_errorPKc’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZSt17__throw_bad_allocv’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_Znwm’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘strlen’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN5TokenC1El’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZdlPv’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘rand’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN5TokenC1Ed’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest19WeightRecorderEventC2Ev’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_Z8getValueIdET_RK5Token’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest12ConnectionIDC1Elllll’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_Z8ld_roundd’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNK4nest11SourceTable7get_gidEijm’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘__dynamic_cast’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘ZNK4nest12ConnectionIDeqERKS0’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest17ConnectionManager17get_delay_checkerEv’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest12DelayChecker21assert_valid_delay_msEd’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4Name6insertERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest4Time5Range12STEPS_PER_MSE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest5names6targetE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest5names6weightE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest5names7size_ofE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest5names5delayE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest4Time5Range11MS_PER_STEPE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest5names5rportE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZStL19piecewise_construct’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest13KernelManager24kernel_manager_instance_E’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN10Dictionary9VoidTokenE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN4nest10NestModule14ConnectionTypeE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZTV5Datum’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZN14AggregateDatumIN4nest12ConnectionIDEXadL_ZNS0_10NestModule14ConnectionTypeEEEE6memoryE’ in ‘/tmp/event_delivery_manager-656e32.cubin’
nvlink error : Undefined reference to ‘_ZL14max_block_size’ in ‘/tmp/event_delivery_manager-656e32.cubin’
clang-11: error: nvlink command failed with exit code 255 (use -v to see invocation)
make[2]: *** [nestkernel/libnestkernel.so] Error 255
make[1]: *** [nestkernel/CMakeFiles/nestkernel.dir/all] Error 2
make: *** [all] Error 2

What should I do?

This reproducer attached, while it may have irrelevant code, shows the issue.

clang++ -g -fopenmp -fopenmp-targets=nvptx64 my1.cpp

my1.cpp (4.89 KB)

int main() {
#pragma omp target parallel for
for (int i=0;i<10;i++) {
int *a = new int[100];
}
}

Is the above supported?

Currently, I get:
nvlink error : Undefined reference to ‘_Znam’ in ‘/tmp/new-c045d3.cubin’
clang-11: error: nvlink command failed with exit code 255 (use -v to see invocation)

Alexey,

Am still seeing a build time error like below:
$ clang++ -g -fopenmp -fopenmp-targets=nvptx64 new.cpp
nvlink error : Undefined reference to ‘_Znam’ in ‘/tmp/new-a4b234.cubin’
clang-11: error: nvlink command failed with exit code 255 (use -v to see invocation)
$ cat new.cpp
int main() {
#pragma omp target parallel for
for (int i=0;i<10;i++) {
int *a = new int[100];
}
}

Are you still working on this? My Clang(-11) is the latest one built from Trunk.

@Alexey

Could you please reply to the list as well. It is way more difficult to
follow the conversation this way.

Johannes,
Alexey’s kept including the list all the time on this discussion.

Itaru.

Hi Itaru,

I checked not only my local client but also the list archive:

http://lists.llvm.org/pipermail/openmp-dev/2020-January/

See
  http://lists.llvm.org/pipermail/openmp-dev/2020-January/003122.html
or
   http://lists.llvm.org/pipermail/openmp-dev/2020-January/003119.html
both threads show your responses but not his emails.

Either the list is not CC'ed or the email is not registered on the list,
either way something has to happen to make the emails visible to us.

Cheers,
  Johannes

Alexey,

In my app, NEST, the code which creates an object on the device does not build if offloading flags are enabled but
does build without it. It will likely be difficult to come up with a compact reproducer, would it be ok for you to ask to take
a look at the code I am working on?

Alexey,

The branch I’m working on is

clang-openmp-offloading

Right

Its under my GotHub account ikitayama

Alexey,
Thanks for checking the codebase. Do you feel that the C++ program is hard to support in the
current framework, without a great deal of code rewrite?

I was asking, as NEST only requires C++11 at this moment, and I just think it is just another
C++ program.

Alexey,
From CUDA 10.2 onwards, libcu++ is provided, could this be of help a bit, have you experimented
the toolkit already or stay CUDA 8 for most of your development needs?