123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #include <stdio.h>
- int
- on_nvptx (void)
- {
- return 1;
- }
- int
- on_gcn (void)
- {
- return 2;
- }
- #pragma omp declare variant (on_nvptx) match(construct={target},device={arch(nvptx)})
- #pragma omp declare variant (on_gcn) match(construct={target},device={arch(gcn)})
- int
- on (void)
- {
- return 0;
- }
- int
- main ()
- {
- int v;
- #pragma omp target map(from:v)
- v = on ();
- switch (v)
- {
- default:
- printf ("Host fallback or unknown offloading\n");
- break;
- case 1:
- printf ("Offloading to NVidia PTX\n");
- break;
- case 2:
- printf ("Offloading to AMD GCN\n");
- break;
- }
- return 0;
- }
|