Linker issue GPU Coder generated static lib to g++ project.

7 visualizaciones (últimos 30 días)
Markus Walser
Markus Walser el 4 de Oct. de 2019
Comentada: Markus Walser el 21 de Nov. de 2019
Hi
I generated a static libxyz.a with the GPU Coder on a Jetson Xavier target. Now I want to link this library into an existing g++ project.
Unfortunately I get unresolved symbols which directs to MathWorks methods like __cudaRegisterLinkedBinary_54_tmpxft_000031a2_00000000_6_MWTargetNetworkImpl_cpp1_ii_beb7
An internet search pointed me to a build example for such use case: https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#examples
There's an intermediate linker step (--device-link) used before generating the static library, in this case libgpu.a:
nvcc --gpu-architecture=sm_50 --device-c a.cu b.cu
nvcc --gpu-architecture=sm_50 --device-link a.o b.o --output-file link.o
nvcc --lib --output-file libgpu.a a.o b.o link.o
g++ host.o --library=gpu --library-path=<path> \
--library=cudadevrt --library=cudart
Unfortunately I cannot find this --device-link step in the GPU Coders build log before the static library is linked from the object files.
Is there an coder option to enable such device-linker step? Or how could such unresolved symbold be resolved otherwise?

Respuestas (1)

Claudio Stucki
Claudio Stucki el 20 de Nov. de 2019
Editada: Claudio Stucki el 20 de Nov. de 2019
Hi
I have the same problems. Have you found a solution to link your library successfully?
  1 comentario
Markus Walser
Markus Walser el 21 de Nov. de 2019
Hi
I created a simple shell script which I invoke manually after the Matlab build process.
MathWorks is informed about it. I hope we get a solution in a future release.
Regards, Markus

Iniciar sesión para comentar.

Categorías

Más información sobre Get Started with GPU Coder en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by