invalid argument to #pragma omp simd

Issue #326 resolved
Jonas Thies created an issue

it seems when replacing "#pragma simd" (Intel) by the more portable "#pragma omp simd" you have to do something about the simdlen parameter:

src_unrolled/tsmm_inplace_var2_plain__var_var.cpp:69:18: Fehler: »simdlen« ist für »#pragma omp simd« ungültig

This happens with gcc 4.9.2 (and perhaps others)

Comments (3)

  1. Dominik Ernst

    Yes, simdlen is an OpenMP 4.5 feature, which is suported starting from GCC 6.0. If we do not want to increase the GCC support level, the only solution is to remove the simdlen clause, which is relevant for sizes M,N=2,3,4

  2. Jonas Thies reporter

    we could check if the feature is supported using a CMake "CheckCSourceCompiles" and setting e.g. GHOST_HAVE_OPENMP45. I think we should keep supporting older gcc versions because they are the default compilers in many Linux distributions and are required for building with CUDA.

  3. Log in to comment