Page 1 of 1
Calling e_dma_copy from within a kernel
Posted:
Sun Jan 03, 2016 6:53 am
by nickoppen
Re: Calling e_dma_copy from within a kernel
Posted:
Mon Jan 04, 2016 5:00 pm
by jar
I'm not sure why you have errors. I believe the threaded MPI COPRTHR beta download should be used rather than the COPRTHR source on github.
The kernel already has e_dma_copy in it for off-chip DMAs (bringing data in and writing out results). The on-chip MPI_Sendrecv_replace routine in the n-body code uses the DMA engine on the back end, although that's an implementation detail the application developer doesn't need to know. Regardless of the copy method, the n-body algorithm is not communication bound for large problems so that even if a more efficient copy method were written, it would not increase performance significantly (less than 5%).
I see you have some OpenMPI stuff installed. OpenMPI is different than COPRTHR threaded MPI. OpenMPI is strictly for the ARM host cores, not the Epiphany cores.
Re: Calling e_dma_copy from within a kernel
Posted:
Wed Jan 06, 2016 12:17 pm
by nickoppen
Thanks jar. That's actually very frustrating. I spent hours trying to figure out how to get the COPRTHR MPI interface and the best i could find was the README.md from the para-para example. I also downloaded a tiny compressed file from browdeer that included the coprthr_mpi.h file but that seemed too small to be anything of substance. Clearly not the good stuff.
Would you be so kind as to post a link to the coprthr beta version that includes the mpi extensions. I'll get rid of openmpi and that might get the e_dma_copy and mutex_lock problems sorted as well.
nick
Re: Calling e_dma_copy from within a kernel
Posted:
Wed Jan 06, 2016 3:18 pm
by jar
Re: Calling e_dma_copy from within a kernel
Posted:
Thu Jan 14, 2016 10:45 am
by nickoppen
Re: Calling e_dma_copy from within a kernel
Posted:
Thu Jan 14, 2016 5:50 pm
by jar
Re: Calling e_dma_copy from within a kernel
Posted:
Fri Jan 15, 2016 2:32 am
by nickoppen
Hi JAR,
Thanks for that. I followed the log file through and everything was going fine until there was a reference to /opt/adapteva/esdk/tools/e-gnu/epiphany-elf/sys-include. I don't have such a directory. I've got /opt/adapteva/esdk/tools/e-gnu/epiphany-elf/include which has the e_mutex.h and e_dma.h in it.
When I created a soft link on ...-elf/include to give myself a ...elf/sys-include directory everything was happy.
I'm happy with this work around but is there a setting somewhere that causes the script to use ...elf/sys-include rather than ...elf/include?
nick
Re: Calling e_dma_copy from within a kernel
Posted:
Fri Jan 15, 2016 2:49 am
by jar
It's probably set in the configure process while building the COPRTHR SDK.
Re: Calling e_dma_copy from within a kernel
Posted:
Fri Jan 15, 2016 9:10 am
by nickoppen
Thanks. I'll live with it for now. Hopefully version 2 will have it fixed.
nick