https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121247

            Bug ID: 121247
           Summary: -fopenmp and -fopenacc can not be used together on
                    nvptx and g++. Nvidia's nvc++ can use both
           Product: gcc
           Version: 15.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: schulz.benjamin at googlemail dot com
  Target Milestone: ---

OpenAcc is specializes for accellerators and has some statements for these
devices that OpenMP does not have. OpenMP has good parallel computation on the
host. An interesting idea would be to mix them.


If you want to mix OpenMP and OpenAcc in gcc, you would need to pass both
-fopenacc -fopenmp to gcc.


G++ will then complain on nvptx :


> nvptx mkoffload: severe error: either »-fopenacc« or »-fopenmp« must be 
> provided. Compilation ended.
> lto-wrapper: severe error. Compilation ended.


This is a bit strange, since both are handled by I think libgomp and nvptx...

Nvidia's nvc++ can apparently use both OpenAcc and OpenMP together (in theory)
and they recommend that. 
https://forums.developer.nvidia.com/t/openacc-and-omp/237191


(In practice, nvc++ of often complains it can not parallelize loops in OpenMP)

Reply via email to