Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
1697 Discussions

not recognize function with #pragma omp target "Unresolved Symbol"

waltermdq
Beginner
1,381 Views

Hello

 

i try to use the function ippiYUV422ToRGB_8u_C2C3R inside of #pragma omp taget. i try to run that function on gpu using pragma. but that funtion or any other function form ippi libray run properly, always show the same error message usign the debuger target level. Unresolved Symbol <ippiYUV422ToRGB_8u_C2C3R > is like, the library is not linked or not resolved inside that #pragma. if i apply that funciont outside of #pragma.. working well. there is a way to use the ippi library inside on omp block?. or whats is the way to use that library?

regards

1 Reply
ZubairSk
Beginner
557 Views

Hello!

It sounds like you're facing issues with linking the Intel IPP library functions when using #pragma omp target to offload to the GPU. The unresolved symbol error suggests that the library isn’t properly linked in the GPU context.

Here are a few steps that might help:

  1. Check Library Support for GPU: Ensure that the Intel IPP library is supported for GPU execution. Many IPP functions are designed for CPU and may not be compatible with GPU offloading directly. The ippiYUV422ToRGB_8u_C2C3R function may need specific adjustments or a different approach for GPU usage.

  2. Linking in Offload Mode: When compiling with OpenMP offloading, you often need to specify the libraries to be linked in both host and device contexts. Make sure you're linking IPP libraries correctly for the target device in your compiler/linker flags.

  3. Alternative Solution: If IPP doesn’t directly support GPU offloading, a workaround might be to first transfer the data from GPU to CPU, process it using the IPP function, and then send it back to the GPU. Though not ideal performance-wise, this can be a temporary solution.

  4. Intel's OneAPI: You could look into Intel's oneAPI, which is designed for cross-architecture development. They offer GPU-compatible libraries that might have an equivalent function or allow more straightforward usage within #pragma omp target.

Hopefully, this helps point you in the right direction. Let us know how it goes or if you need further assistance!

0 Kudos
Reply