Open MickHardins opened 3 years ago
There's a few CPU kernels that are only coded in x86 intrinstics but not too many. It looks like you're planning to use GPUs based on the CUDA library presence so presumably you don't care if the CPU backend works. We should add some macros to detect non-x86 and just disable the CPU backend in the short term so it will compile for you. There is an ARM CPU port in progress.
We should add some macros to detect non-x86 and just disable the CPU backend in the short term so it will compile for you.
Thanks, that would be awesome.
In the meantime I've found this document:
https://developer.ibm.com/technologies/linux/tutorials/migrate-app-on-lop/
it seems that using -DNO_WARN_X86_INTRINSICS
flag should enable the conversion to specific SIMD instruction.
If you have some suggestions on how to modify the build flags I can try to compile and report back problems.
EDIT: I just read again your answer, I will try to compile without CPU support and see if everything works!
Find everything that doesn't compile and wrap ?
#if defined(__x86_64__)
// Original code
#else
// Abort unimplemented
#endif
Compiling with cmake .. -DCOMPILE_CPU=off -DUSE_SENTENCEPIECE=on -DCOMPILE_SERVER=on is still failing.
Even with a modified CMakeLists.txt with $INTRINSIC
set to ""
the error is the same.
The error refers to marian/src/common/types.h:20:10
file
I'm surely doing something wrong here but I'm not very much familiar with CMake.
if defined(__x86_64__)
// Original code
else
// Abort unimplemented
endif
which files should I modify like this?
Can we fake the intrinsics? How many different intrinsics are actually used? Maybe we can just emulate those that are used.
Hello, I'm trying to compile marian on a node with an IBM POWER9 AC922 CPU. I was able to overcome some errors of g++ complaining about -march flag, changing -march to -mcpu however now the compilation halts because of a fatal error:
/m100/home/userexternal/home/marian/src/common/types.h:20:10: fatal error: immintrin.h: No such file or directory
the output of CMake is this:
After a bit of research I found out that this error should be related to the missing support of SIMD instruction. I also tried to set intrinsic in
CMakeList.txt
to an empty string to avoid passing the flags to compiler but nothing changed.Is there a way to compile marian on this architechture?
Thanks in advance for the help