- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear All,
Sorry advance if such similar post is an old topic!
I am trying to compile some existing KNC coprocessor code with KNL host processor using Parallel Studio 2017 but encountered the errors below.
I tried commenting out the "#pragma" code from the source to avoid calling the coprocessor but no helps.
Any good documentation for how to convert KNC coprocessor to KNL host processor?
Better yet, any idea how to fix the below problem?
Thanks much in advance for any pointers!
--Wo
...
mpiicpc -xMIC-AVX512 -O3 -Wall -funroll-all-loops -I /big/Intel/bin/include -I ../../zlib-1.2.8 -DCOMPRESSED_INPUT -DMPI_PARALLEL -o objs/AlignCoreTiling.mpi.cpp.o -c src/AlignCoreTiling.cpp
mpiicpc -xMIC-AVX512 -O3 -Wall -funroll-all-loops -I /big/Intel/bin/include -I ../../zlib-1.2.8 -DCOMPRESSED_INPUT -o mpi-swaphi-ls objs/AlignCore.mpi.cpp.o objs/Align.mpi.cpp.o objs/main.mpi.cpp.o objs/SeqFileParser.mpi.cpp.o objs/Sequence.mpi.cpp.o objs/Utils.mpi.cpp.o objs/AlignCoreNaive.mpi.cpp.o objs/AlignCoreTiling.mpi.cpp.o -lz -lm
ld: warning: libcoi_device.so.0, needed by /big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5, not found (try using -rpath or -rpath-link)
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIPerfGetCycleFrequency@COI_1.0'
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIBufferAddRef@COI_1.0'
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIPipelineStartExecutingRunFunctions@COI_1.0'
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIEngineGetIndex@COI_1.0'
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIBufferReleaseRef@COI_1.0'
/big/Intel/bin/compilers_and_libraries_2017.1.132/linux/compiler/lib/intel64_lin/libioffload_target.so.5: undefined reference to `COIProcessWaitForShutdown@COI_1.0'
make: *** [all] Error 1
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
You may have missed one of the following constructs:
__attribute__ (( target (mic))) int i;
or:
#pragma offload_attribute(push, target(mic)) ... #pragma offload_attribute(pop)
Another thing to check is having offload.h included in one of the source files.
Let me also propose considering more gradual approach to modernizing your application, presented during HPC Developer Conference: http://www.intel.com/content/www/us/en/events/hpcdevcon/systems-track.html#discover
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you have the KNL MPSS installed on your system.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear All,
Thanks for those replied!
I think using "-qoffload=none" solved all my compilation problem.
But, when executing the program, I have “failed to offload on device 0” runtime error message. I think my program stopped at this point.
Any ideas how to fix this?
Thanks.
--Wo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you have a KNC offload program and want to recompile for KNL, the switch is -qoffload-arch=mic-avx512.
Any KNC-specific code within #ifdef __MIC__ will need to be examined for suitability for KNL, and the __MIC__ macro itself should be replaced with __TARGET_ARCH_MIC.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This message: “failed to offload on device 0" indicates that the program still tries to offload.
I would like to make sure that I understand your goal: do you want to modify the program that currently uses offloading to KNC so that it will run on a KNL machine without any offloading? Is it correct?
Another question: does your original KNC program use compiler offloading "#pragma offload target(mic)" or OpenMP target directives?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Jan,
Yes I want to modify the program that currently uses offloading to KNC so that it will run on a KNL machine without any offloading. Yes, the current KNC code does use #pragma constructs and openmp.
Thank smuch for your help!
--Wo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I understand, thanks for the confirmation.
I get the same error message while linking any simple program with one of the offload pragma constructs (either #pragma offload or #pragma offload_attribute) and -xMIC-AVX512 parameter. Please double check if you haven't missed any of those while commenting out pragmas. If it doesn't help, is it possible for you to share the source code?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan,
Good that you could repeat the problem! Yes, I do have the
What I also the -xMIC-AVX512 -O3 -qopenmp -Wall -qoffload=none -qoffload-arch=mic-avx512 and also comment out the "#pragma offload" in the program but same error message.
I just sent you the source code via Google Doc since the attachment won't go through.
Thanks much for your help!
--Wo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wo,
I've sent you a private message here on IDZ regarding code sharing.
Jan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan,
I am facing with the same problem in the same code he is using. I have tried converting the offload code completely to run in Host KNL processor without any co-processor(Native mode). I have removed the offload constructs and __MIC__ routines. I am still facing issues elsewhere.
The code is using Intel Intrinsic vector registers to implement vectorization in the algorithm. When I remove __MIC__ and offload constructs and compile the code, I am getting error messages provided in the link below.
https://software.intel.com/en-us/forums/intel-many-integrated-core/topic/748504
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page