Hi,
looking further into it, the inclusion of any one of the following three headers seems to cause trouble: algorithm, cmath and random. A minimal example to reproduce the issue (Compiler version 14.0 and MPSS 3.1.2):
#pragma offload_attribute(push, target(mic))
// Include any one of these three. No need to actually use any function.
#include <random>
#include <cmath>
#include <algorithm>
#pragma offload_attribute(pop)
int main() {
#pragma offload target(mic)
{ }
}
The code compiles and the MIC compiler just brings up a warning about the missing symbols:
*MIC* unresolved __builtin_nexttowardf
*MIC* unresolved __builtin_signbit
The application crashes when the actual offload should take place.
Hi,
looking further into it, the inclusion of any one of the following three headers seems to cause trouble: algorithm, cmath and random. A minimal example to reproduce the issue (Compiler version 14.0 and MPSS 3.1.2):
#pragma offload_attribute(push, target(mic))
// Include any one of these three. No need to actually use any function.
#include <random>
#include <cmath>
#include <algorithm>
#pragma offload_attribute(pop)
int main() {
#pragma offload target(mic)
{ }
}
The code compiles and the MIC compiler just brings up a warning about the missing symbols:
*MIC* unresolved __builtin_nexttowardf
*MIC* unresolved __builtin_signbit
The application crashes when the actual offload should take place.