offtarget 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- offload/__init__.py +10 -0
- offload/__main__.py +5 -0
- offload/_bundle.py +74 -0
- offload/_root/catalog/acc/claims.yaml +197 -0
- offload/_root/catalog/acc/clauses.yaml +391 -0
- offload/_root/catalog/acc/no_oracle.yaml +89 -0
- offload/_root/catalog/acc/out_of_scope.yaml +17 -0
- offload/_root/catalog/acc/rules.yaml +433 -0
- offload/_root/catalog/acc/semantic_atoms.yaml +27 -0
- offload/_root/catalog/acc/skeleton.yaml +1567 -0
- offload/_root/catalog/acc/spec_overrides.yaml +72 -0
- offload/_root/catalog/later_forms.yaml +76 -0
- offload/_root/catalog/machines.yaml +218 -0
- offload/_root/catalog/omp/claims.yaml +2047 -0
- offload/_root/catalog/omp/clauses.yaml +914 -0
- offload/_root/catalog/omp/derivations.yaml +177 -0
- offload/_root/catalog/omp/memory_modes.yaml +40 -0
- offload/_root/catalog/omp/no_oracle.yaml +373 -0
- offload/_root/catalog/omp/omp50_delta.yaml +377 -0
- offload/_root/catalog/omp/out_of_scope.yaml +64 -0
- offload/_root/catalog/omp/port_equivalence.yaml +352 -0
- offload/_root/catalog/omp/rules.yaml +3131 -0
- offload/_root/catalog/omp/rules_coverage.yaml +9939 -0
- offload/_root/catalog/omp/semantic_atoms.yaml +34 -0
- offload/_root/catalog/omp/skeleton.yaml +9181 -0
- offload/_root/catalog/omp/spec_overrides.yaml +932 -0
- offload/_root/catalog/toolchains.yaml +472 -0
- offload/_root/catalog/vendor_claims_generic.yaml +40925 -0
- offload/_root/data/canuse/b.json +1 -0
- offload/_root/data/canuse/c.json +1 -0
- offload/_root/data/canuse/columns.json +1 -0
- offload/_root/data/canuse/d.json +1 -0
- offload/_root/data/canuse/f.json +1 -0
- offload/_root/data/canuse/index.json +1 -0
- offload/_root/data/canuse/p.json +1 -0
- offload/_root/data/compilers/afar.json +1 -0
- offload/_root/data/compilers/cce19.json +1 -0
- offload/_root/data/compilers/cce20.json +1 -0
- offload/_root/data/compilers/cce21.json +1 -0
- offload/_root/data/compilers/cce21_4.json +1 -0
- offload/_root/data/compilers/gcc.json +1 -0
- offload/_root/data/compilers/gcc_sm80.json +1 -0
- offload/_root/data/compilers/nvhpc.json +1 -0
- offload/_root/data/compilers/nvhpc269.json +1 -0
- offload/_root/data/findings/AUTHORING.md +107 -0
- offload/_root/data/findings/README.md +33 -0
- offload/_root/data/findings/afar-c-error-directive-in-target-link.c +37 -0
- offload/_root/data/findings/afar-c-lastprivate-distribute-parallel-for-small-type.c +56 -0
- offload/_root/data/findings/afar-c-teams-distribute-reduction-first-team.c +59 -0
- offload/_root/data/findings/afar-c-update-iterator-copy-mode.c +45 -0
- offload/_root/data/findings/afar-c-xnack1-target-is-present.c +31 -0
- offload/_root/data/findings/afar-cce19-character-defaultmap.f90 +27 -0
- offload/_root/data/findings/afar-cce19-task-in-target-ice.f90 +23 -0
- offload/_root/data/findings/afar-clang-requires-device-safesync-hang.c +24 -0
- offload/_root/data/findings/afar-flang-firstprivate-map-two-targets.f90 +34 -0
- offload/_root/data/findings/afar-flang-loop-bind-teams-reduction.f90 +27 -0
- offload/_root/data/findings/afar-flang-task-reduction-max.f90 +31 -0
- offload/_root/data/findings/afar-flang-thread-limit-target-parallel-do.f90 +22 -0
- offload/_root/data/findings/afar-linear-ref-omp50.f90 +29 -0
- offload/_root/data/findings/afar-loop-bind-thread-in-teams.f90 +44 -0
- offload/_root/data/findings/afar-nontemporal-assumed-shape-ice.f90 +38 -0
- offload/_root/data/findings/afar-udr-derived-type-link.f90 +41 -0
- offload/_root/data/findings/afar-xnack1-atomic-min-nested-parallel.f90 +53 -0
- offload/_root/data/findings/afar-xnack1-present-not-enforced.f90 +36 -0
- offload/_root/data/findings/afar-xnack1-target-is-present.f90 +47 -0
- offload/_root/data/findings/apps/afar-cce-teams-private-array-nested-parallel-wrong.f90 +100 -0
- offload/_root/data/findings/apps/cce20-device-link-infer-address-spaces-crash.f90 +159 -0
- offload/_root/data/findings/apps/cce21-device-link-agpr-copy-mfma-assert.f90 +343 -0
- offload/_root/data/findings/apps/cce21-private-array-loaded-subscript-wrong.f90 +113 -0
- offload/_root/data/findings/apps/controls/bubble-simple-rddot.f90 +284 -0
- offload/_root/data/findings/apps/controls/bubble-two-substeps.f90 +287 -0
- offload/_root/data/findings/apps/controls/cbc-inline.f90 +97 -0
- offload/_root/data/findings/apps/controls/cbc-integers.f90 +91 -0
- offload/_root/data/findings/apps/controls/cbc-only-density.f90 +97 -0
- offload/_root/data/findings/apps/controls/cbc-only-velocity.f90 +97 -0
- offload/_root/data/findings/apps/controls/gcc-acc-c-tile-control.c +26 -0
- offload/_root/data/findings/apps/controls/gcc-acc-tile-control.f90 +29 -0
- offload/_root/data/findings/apps/controls/private-array-subscript-probes.f90 +45 -0
- offload/_root/data/findings/apps/controls/teams-private-array-read-par.f90 +31 -0
- offload/_root/data/findings/apps/controls/teams-private-array-seq.f90 +30 -0
- offload/_root/data/findings/apps/controls/teams-private-array-shared.f90 +34 -0
- offload/_root/data/findings/apps/controls/teams-private-array-split.f90 +36 -0
- offload/_root/data/findings/apps/controls/teams-private-array-write-par.f90 +31 -0
- offload/_root/data/findings/apps/gcc-acc-c-tile-partial-tiles-wrong.c +60 -0
- offload/_root/data/findings/apps/gcc-acc-tile-partial-tiles-wrong.f90 +64 -0
- offload/_root/data/findings/catalog/afar-c-complex-reduction-link.c +66 -0
- offload/_root/data/findings/catalog/afar-c-critical-hint-link.c +68 -0
- offload/_root/data/findings/catalog/afar-c-ordered-doacross-link.c +62 -0
- offload/_root/data/findings/catalog/afar-c-reduction-task-link.c +81 -0
- offload/_root/data/findings/catalog/afar-flang-absent-optional-target-crash.f90 +76 -0
- offload/_root/data/findings/catalog/afar-flang-critical-target-parallel-wrong.f90 +74 -0
- offload/_root/data/findings/catalog/afar-flang-dist-schedule-chunk.f90 +80 -0
- offload/_root/data/findings/catalog/afar-flang-linear-parallel-ice.f90 +68 -0
- offload/_root/data/findings/catalog/afar-flang-named-critical-link.f90 +67 -0
- offload/_root/data/findings/catalog/afar-flang-ordered-wrong.f90 +78 -0
- offload/_root/data/findings/catalog/afar-flang-reduction-minus-rejected.f90 +77 -0
- offload/_root/data/findings/catalog/afar-flang-reduction-task-ice.f90 +68 -0
- offload/_root/data/findings/catalog/afar-flang-sections-in-target-ice.f90 +67 -0
- offload/_root/data/findings/catalog/afar-flang-workdistribute-ice.f90 +71 -0
- offload/_root/data/findings/catalog/c-allocate-const-mem-firstprivate-wrong.c +79 -0
- offload/_root/data/findings/catalog/cce-acc-allocate-in-compute-crash.f90 +65 -0
- offload/_root/data/findings/catalog/cce-acc-character-dummy-routine-ice.f90 +81 -0
- offload/_root/data/findings/catalog/cce-acc-loop-seq-in-routine-wrong.f90 +81 -0
- offload/_root/data/findings/catalog/cce-acc-stop-in-compute-crash.f90 +62 -0
- offload/_root/data/findings/catalog/cce-allocators-stack-ice.f90 +81 -0
- offload/_root/data/findings/catalog/cce-atomic-default-mem-order-acquire-release-rejected.f90 +61 -0
- offload/_root/data/findings/catalog/cce-c-allocate-align-link.c +83 -0
- offload/_root/data/findings/catalog/cce-c-allocate-allocator-modifier-rejected.c +77 -0
- offload/_root/data/findings/catalog/cce-c-device-type-directive-name-ice.c +70 -0
- offload/_root/data/findings/catalog/cce-c-dist-schedule-chunk.c +81 -0
- offload/_root/data/findings/catalog/cce-c-f-pointer-device-link.f90 +70 -0
- offload/_root/data/findings/catalog/cce-c-lastprivate-parallel-in-seq-loop-wrong.c +64 -0
- offload/_root/data/findings/catalog/cce-c-long-double-ice.c +61 -0
- offload/_root/data/findings/catalog/cce-c-map-iterator-ice.c +92 -0
- offload/_root/data/findings/catalog/cce-c-motion-iterator-rejected.c +68 -0
- offload/_root/data/findings/catalog/cce-c-ordered-doacross-link.c +64 -0
- offload/_root/data/findings/catalog/cce-c-ordered-link.c +77 -0
- offload/_root/data/findings/catalog/cce-c-recursive-function-ice.c +62 -0
- offload/_root/data/findings/catalog/cce-c-reduction-inscan-ice.c +67 -0
- offload/_root/data/findings/catalog/cce-c-reduction-task-link.c +73 -0
- offload/_root/data/findings/catalog/cce-c-sections-in-target-wrong.c +70 -0
- offload/_root/data/findings/catalog/cce-c-single-masked-task-link.c +66 -0
- offload/_root/data/findings/catalog/cce-c-task-in-target-link.c +75 -0
- offload/_root/data/findings/catalog/cce-c-uses-allocators-traits-rejected.c +71 -0
- offload/_root/data/findings/catalog/cce-flang-allocate-const-mem-ice.f90 +67 -0
- offload/_root/data/findings/catalog/cce-flang-allocate-in-target-crash.f90 +68 -0
- offload/_root/data/findings/catalog/cce-flang-lastprivate-parallel-in-seq-loop-wrong.f90 +83 -0
- offload/_root/data/findings/catalog/cce-flang-stop-in-target-crash.f90 +64 -0
- offload/_root/data/findings/catalog/cce-iterator-link.f90 +67 -0
- offload/_root/data/findings/catalog/cce-linear-lastprivate-ice.f90 +69 -0
- offload/_root/data/findings/catalog/cce-nohost-link.f90 +90 -0
- offload/_root/data/findings/catalog/cce-reduction-inscan-ice.f90 +66 -0
- offload/_root/data/findings/catalog/cce-reduction-task-link.f90 +76 -0
- offload/_root/data/findings/catalog/cce19-reduction-task-addrspacecast-ice.f90 +77 -0
- offload/_root/data/findings/catalog/cce20-c-defaultmap-private-storage-rejected.c +85 -0
- offload/_root/data/findings/catalog/cce20-map-self-rejected.f90 +64 -0
- offload/_root/data/findings/catalog/cce21-c-declare-target-local-rejected.c +73 -0
- offload/_root/data/findings/catalog/cce21-c-target-loop-ice.c +77 -0
- offload/_root/data/findings/catalog/defaultmap-present-private-array-abort.f90 +73 -0
- offload/_root/data/findings/catalog/nvhpc-acc-associate-illegal-address.f90 +66 -0
- offload/_root/data/findings/catalog/nvhpc-c-function-pointer-kernel-missing.c +68 -0
- offload/_root/data/findings/catalog/nvhpc-c-long-double-kernel-missing.c +64 -0
- offload/_root/data/findings/catalog/nvhpc-c-static-local-kernel-missing.c +73 -0
- offload/_root/data/findings/catalog/nvhpc-c-vla-kernel-missing.c +63 -0
- offload/_root/data/findings/catalog/nvhpc-flang-type-bound-kernel-missing.f90 +86 -0
- offload/_root/data/findings/cce-acc-init-set-runtime-assert.f90 +35 -0
- offload/_root/data/findings/cce-acc-reduction-200-int8-scalars-wrong.f90 +1278 -0
- offload/_root/data/findings/cce-acc-routine-bind-module-ice.f90 +35 -0
- offload/_root/data/findings/cce-acc-self-condition-ignored.f90 +17 -0
- offload/_root/data/findings/cce-c-dist-schedule-segv.c +34 -0
- offload/_root/data/findings/cce-c-map-delete-refcount.c +47 -0
- offload/_root/data/findings/cce-c-map-present-assert.c +45 -0
- offload/_root/data/findings/cce-c-openmp45-device-link.c +34 -0
- offload/_root/data/findings/cce-c-parallel-for-in-target.c +73 -0
- offload/_root/data/findings/cce-defaultmap-tofrom-explicit-map.f90 +92 -0
- offload/_root/data/findings/cce-mapper-next-map-copy-back.f90 +48 -0
- offload/_root/data/findings/cce-trim-merge-output-one-character.f90 +40 -0
- offload/_root/data/findings/cce-uses-allocators-traits-omp50.f90 +28 -0
- offload/_root/data/findings/cce19-acc-if-false-link.f90 +17 -0
- offload/_root/data/findings/cce19-c-reduction-63-scalars-one-wrong.c +235 -0
- offload/_root/data/findings/cce19-target-parallel-guarded-loop.f90 +35 -0
- offload/_root/data/findings/cce19-target-parallel-single-ice.f90 +38 -0
- offload/_root/data/findings/cce21-alloc-2e32-sum-wrong.f90 +68 -0
- offload/_root/data/findings/cce21-defaultmap-aggregate-flag.f90 +52 -0
- offload/_root/data/findings/cce21-in-reduction-assumed-shape-write-lost.f90 +61 -0
- offload/_root/data/findings/cce21-in-reduction-taskwait-link.f90 +59 -0
- offload/_root/data/findings/cce21-linear-modifier-default-none.f90 +59 -0
- offload/_root/data/findings/clang-c-declare-target-to-omp52.c +50 -0
- offload/_root/data/findings/clang-c-linear-directive-name-hang.c +30 -0
- offload/_root/data/findings/clang-c-map-iterator-omp51.c +51 -0
- offload/_root/data/findings/clang-c-shared-declare-target-combined.c +58 -0
- offload/_root/data/findings/dataenv/cce-value-dummy-target-write-visible.f90 +74 -0
- offload/_root/data/findings/defaultmap-none-loop-variable.f90 +69 -0
- offload/_root/data/findings/fortran-loop-bind-thread-in-parallel.f90 +53 -0
- offload/_root/data/findings/fortran-schedule-static-in-target.f90 +55 -0
- offload/_root/data/findings/fresh/cce-common-block-name-in-map-rejected.f90 +47 -0
- offload/_root/data/findings/fresh/cce-if-stop-in-target-ice-one-condition.f90 +38 -0
- offload/_root/data/findings/fresh/cce-if-stop-in-target-ice.f90 +43 -0
- offload/_root/data/findings/fresh/cce-list-directed-print-in-target-copy-crash.f90 +40 -0
- offload/_root/data/findings/fresh/cce19-acc-automatic-array-copyout-copy-crash.f90 +56 -0
- offload/_root/data/findings/fresh/cce21-combined-if-runtime-expr-loop-skipped.f90 +57 -0
- offload/_root/data/findings/fresh/nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.f90 +67 -0
- offload/_root/data/findings/fresh/nvhpc-teams-loop-module-allocatable-assign-fort2-crash.f90 +73 -0
- offload/_root/data/findings/fuzz/1131-afar.f90 +48 -0
- offload/_root/data/findings/fuzz/1391-cce20.f90 +40 -0
- offload/_root/data/findings/fuzz/14-cce20.f90 +36 -0
- offload/_root/data/findings/fuzz/1505-cce20.f90 +88 -0
- offload/_root/data/findings/fuzz/1540-afar.f90 +44 -0
- offload/_root/data/findings/fuzz/158-afar.f90 +63 -0
- offload/_root/data/findings/fuzz/16-cce20.f90 +39 -0
- offload/_root/data/findings/fuzz/1644-cce21.f90 +31 -0
- offload/_root/data/findings/fuzz/165-cce19.f90 +52 -0
- offload/_root/data/findings/fuzz/1749-cce20.f90 +34 -0
- offload/_root/data/findings/fuzz/1936-afar.f90 +61 -0
- offload/_root/data/findings/fuzz/1978-cce19.f90 +41 -0
- offload/_root/data/findings/fuzz/2014-cce19.f90 +46 -0
- offload/_root/data/findings/fuzz/2224-cce19.f90 +30 -0
- offload/_root/data/findings/fuzz/2334-cce19.f90 +57 -0
- offload/_root/data/findings/fuzz/536-cce19.f90 +38 -0
- offload/_root/data/findings/fuzz/591-cce19.f90 +54 -0
- offload/_root/data/findings/fuzz/650-afar.f90 +58 -0
- offload/_root/data/findings/fuzz/698-afar.f90 +68 -0
- offload/_root/data/findings/fuzz/700-afar.f90 +46 -0
- offload/_root/data/findings/fuzz/775-cce21.f90 +33 -0
- offload/_root/data/findings/fuzz/87-afar.f90 +47 -0
- offload/_root/data/findings/fuzz/916-afar.f90 +67 -0
- offload/_root/data/findings/fuzz/958-cce20.f90 +44 -0
- offload/_root/data/findings/fuzz/98-cce19.f90 +40 -0
- offload/_root/data/findings/fuzz/README.md +236 -0
- offload/_root/data/findings/fuzz/b1-121-afar.f90 +47 -0
- offload/_root/data/findings/fuzz/b1-183-afar.f90 +55 -0
- offload/_root/data/findings/fuzz/b1-22-cce20.f90 +38 -0
- offload/_root/data/findings/fuzz/b1-231-afar.f90 +56 -0
- offload/_root/data/findings/fuzz/b1-268-afar.f90 +46 -0
- offload/_root/data/findings/fuzz/b2-183-afar.f90 +57 -0
- offload/_root/data/findings/fuzz/b2-209-cce19.f90 +51 -0
- offload/_root/data/findings/fuzz/b2-213-afar.f90 +63 -0
- offload/_root/data/findings/fuzz/b2-52-afar.f90 +56 -0
- offload/_root/data/findings/fuzz/b2-68-afar.f90 +54 -0
- offload/_root/data/findings/fuzz/b2-85-cce20.f90 +55 -0
- offload/_root/data/findings/fuzz/b3-188-cce19.f90 +90 -0
- offload/_root/data/findings/fuzz/b3-190-cce21.f90 +88 -0
- offload/_root/data/findings/fuzz/b3-197-cce19.f90 +77 -0
- offload/_root/data/findings/fuzz/b3-250-cce20.f90 +89 -0
- offload/_root/data/findings/fuzz/b3-278-cce19.f90 +70 -0
- offload/_root/data/findings/fuzz/b3-45-cce21.f90 +83 -0
- offload/_root/data/findings/fuzz/b3-54-afar.f90 +67 -0
- offload/_root/data/findings/fuzz/b3-61-cce20.f90 +100 -0
- offload/_root/data/findings/fuzz/b3-9-afar.f90 +100 -0
- offload/_root/data/findings/fuzz/b3-9-cce21.f90 +103 -0
- offload/_root/data/findings/fuzz/b3-94-afar.f90 +80 -0
- offload/_root/data/findings/fuzz/b4-39-afar.f90 +141 -0
- offload/_root/data/findings/fuzz/b4-86-cce19.f90 +71 -0
- offload/_root/data/findings/fuzz/controls/gcc-complex-pointer-store-control.f90 +28 -0
- offload/_root/data/findings/fuzz/controls/gcc-declare-reduction-module-control.f90 +29 -0
- offload/_root/data/findings/fuzz/controls/gcc-target-simd-map-nontemporal-control.f90 +21 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-mapped-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-unreferenced-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-default-none-removed-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-default-shared-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-firstprivate-removed-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-reduction-mapped-control.f90 +17 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-removed-control.f90 +17 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-tofrom-lastprivate-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-depend-explicit-map-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-depend-removed-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-end-distribute-control.f90 +16 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-num-threads-removed-control.f90 +26 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-removed-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-simd-no-end-directive-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-explicit-length-character-dummy-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-array-value-control.f90 +23 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-distribute-control.f90 +20 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-map-always-first-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-map-always-removed-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-num-threads-removed-control.f90 +12 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-firstprivate-dropped-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-single-nowait-control.f90 +13 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-split-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-collapse-split-control.f90 +21 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-end-directive-control.f90 +14 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-no-collapse-control.f90 +19 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-split-no-end-directive-control.f90 +15 -0
- offload/_root/data/findings/fuzz/gcc-declare-reduction-module-not-found.f90 +66 -0
- offload/_root/data/findings/fuzz/gcc-strided-target-update-rejected.f90 +58 -0
- offload/_root/data/findings/fuzz/gcc-target-simd-map-nontemporal-rejected.f90 +54 -0
- offload/_root/data/findings/fuzz/nvhpc-allocatable-component-implicit-map-illegal-address.f90 +84 -0
- offload/_root/data/findings/fuzz/nvhpc-assumed-length-character-dummy-map-ice.f90 +69 -0
- offload/_root/data/findings/fuzz/nvhpc-default-none-reduction-lastprivate-fort1-crash.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-defaultmap-firstprivate-lastprivate-ice.f90 +71 -0
- offload/_root/data/findings/fuzz/nvhpc-defaultmap-to-scalar-reduction-lost.f90 +82 -0
- offload/_root/data/findings/fuzz/nvhpc-depend-implicit-map-illegal-address.f90 +81 -0
- offload/_root/data/findings/fuzz/nvhpc-distribute-parallel-num-threads-writes-lost.f90 +79 -0
- offload/_root/data/findings/fuzz/nvhpc-end-distribute-simd-rejected.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-loop-character-achar-unsupported.f90 +75 -0
- offload/_root/data/findings/fuzz/nvhpc-map-always-after-map-to-not-copied-back.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-num-threads-reduction-identity-lost.f90 +54 -0
- offload/_root/data/findings/fuzz/nvhpc-target-parallel-firstprivate-translate-failure.f90 +66 -0
- offload/_root/data/findings/fuzz/nvhpc-target-parallel-single-hang.f90 +68 -0
- offload/_root/data/findings/fuzz/nvhpc-target-simd-collapse-translate-failure.f90 +73 -0
- offload/_root/data/findings/fuzz/nvhpc-target-simd-no-end-directive-rejected.f90 +68 -0
- offload/_root/data/findings/fuzz/par-s1-2082-gcc_g90.f90 +71 -0
- offload/_root/data/findings/fuzz/s1-2370-cce21.f90 +67 -0
- offload/_root/data/findings/fuzz/s1-2592-cce21.f90 +56 -0
- offload/_root/data/findings/fuzz/s1-3463-cce21.f90 +92 -0
- offload/_root/data/findings/fuzz/s1-4339-afar.f90 +79 -0
- offload/_root/data/findings/fuzz/s1-6085-cce21.f90 +96 -0
- offload/_root/data/findings/fuzz/s1-6760-cce20.f90 +65 -0
- offload/_root/data/findings/fuzz/s1-6888-cce21.f90 +76 -0
- offload/_root/data/findings/fuzz/s1-7882-cce20.f90 +63 -0
- offload/_root/data/findings/fuzz/s1-8634-cce21.f90 +45 -0
- offload/_root/data/findings/fuzz/s1-91-cce21.f90 +92 -0
- offload/_root/data/findings/fuzz/s1-9443-afar.f90 +59 -0
- offload/_root/data/findings/fuzz/s1-9914-cce19.f90 +78 -0
- offload/_root/data/findings/gcc/controls/gcc-acc-c-detach-control.c +34 -0
- offload/_root/data/findings/gcc/controls/gcc-acc-detach-control.f90 +26 -0
- offload/_root/data/findings/gcc/controls/gcc-defaultmap-to-pointer-control.f90 +31 -0
- offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.c +26 -0
- offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.f90 +21 -0
- offload/_root/data/findings/gcc/gcc-acc-bind-device-type-rejected.f90 +71 -0
- offload/_root/data/findings/gcc/gcc-acc-c-bind-device-type-rejected.c +76 -0
- offload/_root/data/findings/gcc/gcc-acc-c-detach-delete-attach-underflow.c +74 -0
- offload/_root/data/findings/gcc/gcc-acc-c-gang-dim-rejected.c +79 -0
- offload/_root/data/findings/gcc/gcc-acc-c-link-in-routine-rejected.c +82 -0
- offload/_root/data/findings/gcc/gcc-acc-detach-delete-attach-underflow.f90 +66 -0
- offload/_root/data/findings/gcc/gcc-acc-gang-dim-collapse-force-rejected.f90 +69 -0
- offload/_root/data/findings/gcc/gcc-acc-init-set-shutdown-rejected.f90 +70 -0
- offload/_root/data/findings/gcc/gcc-acc-link-in-routine-rejected.f90 +82 -0
- offload/_root/data/findings/gcc/gcc-acc-use-device-allocatable-rejected.f90 +88 -0
- offload/_root/data/findings/gcc/gcc-c-motion-mapper-rejected.c +110 -0
- offload/_root/data/findings/gcc/gcc-c-omp60-undocumented-rejected.c +76 -0
- offload/_root/data/findings/gcc/gcc-c-omp60-unimplemented-rejected.c +119 -0
- offload/_root/data/findings/gcc/gcc-c-target-in-task-mandatory-device-not-found.c +87 -0
- offload/_root/data/findings/gcc/gcc-c-uses-allocators-traits-unimplemented.c +85 -0
- offload/_root/data/findings/gcc/gcc-declare-mapper-rejected.f90 +85 -0
- offload/_root/data/findings/gcc/gcc-defaultmap-to-pointer-copy-back.f90 +66 -0
- offload/_root/data/findings/gcc/gcc-loop-bind-default-none-rejected.f90 +93 -0
- offload/_root/data/findings/gcc/gcc-omp60-undocumented-rejected.f90 +72 -0
- offload/_root/data/findings/gcc/gcc-omp60-unimplemented-rejected.f90 +112 -0
- offload/_root/data/findings/gcc/gcc-target-in-task-mandatory-device-not-found.f90 +83 -0
- offload/_root/data/findings/gcc/gcc-uses-allocators-traits-unimplemented.f90 +78 -0
- offload/_root/data/findings/harvest/afar-flang-strided-target-update.f90 +96 -0
- offload/_root/data/findings/harvest/cce-acc-declare-create-module-allocatable-xnack1-fault.f90 +58 -0
- offload/_root/data/findings/harvest/cce-c-implicit-struct-map-partly-present.c +100 -0
- offload/_root/data/findings/harvest/cce-c-strided-target-update.c +74 -0
- offload/_root/data/findings/harvest/cce-ftn-target-parallel-thread-query-ice.f90 +67 -0
- offload/_root/data/findings/harvest/cce-named-constant-array-declare-target-routine-rejected.f90 +69 -0
- offload/_root/data/findings/harvest/cce-use-device-ptr-c-ptr-not-converted.f90 +64 -0
- offload/_root/data/findings/harvest/cce21-declare-target-link-module-variable-write-lost.f90 +63 -0
- offload/_root/data/findings/harvest/cce21-internal-procedure-calls-internal-in-target-fault.f90 +71 -0
- offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-target-only-control.c +22 -0
- offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-whole-control.c +23 -0
- offload/_root/data/findings/harvest/controls/gcc-acc-declare-create-allocatable-control.f90 +34 -0
- offload/_root/data/findings/harvest/controls/gcc-c-same-item-two-maps-control.c +17 -0
- offload/_root/data/findings/harvest/controls/gcc-c-target-data-struct-pointer-section-control.c +27 -0
- offload/_root/data/findings/harvest/controls/gcc-c-target-data-two-maps-control.c +20 -0
- offload/_root/data/findings/harvest/controls/gcc-same-item-two-maps-control.f90 +16 -0
- offload/_root/data/findings/harvest/controls/gcc-teams-simd-matmul-allocatable-control.f90 +27 -0
- offload/_root/data/findings/harvest/gcc-acc-declare-create-allocatable-not-mapped.f90 +66 -0
- offload/_root/data/findings/harvest/gcc-c-same-item-two-maps-rejected.c +45 -0
- offload/_root/data/findings/harvest/gcc-c-strided-section-rejected.c +70 -0
- offload/_root/data/findings/harvest/gcc-c-target-data-struct-pointer-section-ice.c +78 -0
- offload/_root/data/findings/harvest/gcc-c-target-data-two-maps-ice.c +49 -0
- offload/_root/data/findings/harvest/gcc-same-item-two-maps-rejected.f90 +46 -0
- offload/_root/data/findings/harvest/gcc-teams-simd-matmul-allocatable-ice.f90 +53 -0
- offload/_root/data/findings/harvest/nvhpc-c-target-data-if-false-use-device-ptr-garbage.c +49 -0
- offload/_root/data/findings/harvest/nvhpc-named-constant-array-declare-target-routine-rejected.f90 +65 -0
- offload/_root/data/findings/harvest/nvhpc-use-device-ptr-c-ptr-not-found.f90 +60 -0
- offload/_root/data/findings/harvest/nvhpc2511-target-nowait-in-parallel-for-ice.c +59 -0
- offload/_root/data/findings/hecbench/controls/f16-ctl-float-array.c +28 -0
- offload/_root/data/findings/hecbench/controls/pc-ctl-builtin-popcount.c +37 -0
- offload/_root/data/findings/hecbench/controls/pc-ctl-shift-sum.c +43 -0
- offload/_root/data/findings/hecbench/gcc-c-float16-array-in-target-lto-ice.c +65 -0
- offload/_root/data/findings/hecbench/gcc-c-swar-popcount-assembler-error.c +80 -0
- offload/_root/data/findings/index.yaml +2453 -0
- offload/_root/data/findings/malloc/afar-device-malloc-in-kernel-corrupts-records.c +371 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-direct.c +52 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-fence.c +57 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-flush.c +57 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-stack.c +52 -0
- offload/_root/data/findings/multithread-allocatable-section-maps.f90 +91 -0
- offload/_root/data/findings/nested/afar-cce-c-call-result-member-in-target-rejected.c +69 -0
- offload/_root/data/findings/nested/afar-cce-c-update-struct-and-member-rejected.c +92 -0
- offload/_root/data/findings/nested/afar-flang-pointer-root-allocatable-component-enter-data-fault.f90 +121 -0
- offload/_root/data/findings/nested/cce-c-struct-and-nested-pointee-sections-ice.c +79 -0
- offload/_root/data/findings/nested/cce-fortran-nested-allocatable-component-copy-fault.f90 +64 -0
- offload/_root/data/findings/nested/cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.f90 +93 -0
- offload/_root/data/findings/nested/cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.f90 +80 -0
- offload/_root/data/findings/nested/controls/c3-ctl-nested-data.c +27 -0
- offload/_root/data/findings/nested/controls/c5-acc-serial-struct-and-array.c +26 -0
- offload/_root/data/findings/nested/controls/e2-ctl-two-directives.c +42 -0
- offload/_root/data/findings/nested/controls/e3-ctl-attach-clause.c +42 -0
- offload/_root/data/findings/nested/controls/f3-pointer-array-only.c +33 -0
- offload/_root/data/findings/nested/controls/f5-ctl-copyout-exit.c +33 -0
- offload/_root/data/findings/nested/controls/f6-ctl-pointer-to-struct-array.c +28 -0
- offload/_root/data/findings/nested/controls/g2-ctl-allocatable.f90 +34 -0
- offload/_root/data/findings/nested/controls/g2-ctl-entered-to.f90 +34 -0
- offload/_root/data/findings/nested/controls/g3-ctl-from-struct-no-element.c +27 -0
- offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-to.c +27 -0
- offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-tofrom.c +27 -0
- offload/_root/data/findings/nested/controls/g5-ctl-element-pointers-only.f90 +36 -0
- offload/_root/data/findings/nested/controls/g5-ctl-root-pointer-only.f90 +36 -0
- offload/_root/data/findings/nested/controls/gp2-ctl-no-mapper-explicit-maps.c +24 -0
- offload/_root/data/findings/nested/controls/gt2-ctl-no-always.c +26 -0
- offload/_root/data/findings/nested/controls/gt3-ctl-always-on-structure-only.c +26 -0
- offload/_root/data/findings/nested/controls/j1-embedded-struct-pointer-to-struct.c +24 -0
- offload/_root/data/findings/nested/controls/j2-ctl-pointer-instead-of-embedded.c +24 -0
- offload/_root/data/findings/nested/controls/j6-ctl-struct-and-one-pointee-level.c +23 -0
- offload/_root/data/findings/nested/controls/j7-ctl-struct-and-embedded-pointee.c +24 -0
- offload/_root/data/findings/nested/controls/m2-ctl-variable-root.f90 +32 -0
- offload/_root/data/findings/nested/controls/m3-ctl-fixed-array-component.f90 +32 -0
- offload/_root/data/findings/nested/controls/m5-ctl-no-enter-data.f90 +33 -0
- offload/_root/data/findings/nested/controls/n8-ctl-fixed-array-in-component.f90 +33 -0
- offload/_root/data/findings/nested/controls/n9-ctl-allocatable-in-the-variable.f90 +33 -0
- offload/_root/data/findings/nested/controls/ns4-ctl-two-directives-struct-then-pointee.c +27 -0
- offload/_root/data/findings/nested/controls/ns8-ctl-enter-together-exit-split.c +26 -0
- offload/_root/data/findings/nested/controls/nu3-ctl-update-pointee-only.c +28 -0
- offload/_root/data/findings/nested/controls/p2-ctl-pointer-variable.c +27 -0
- offload/_root/data/findings/nested/controls/p3-ctl-direct-member.c +26 -0
- offload/_root/data/findings/nested/controls/q2-ctl-fixed-array.f90 +37 -0
- offload/_root/data/findings/nested/controls/q3-ctl-allocatable-component-of-the-variable.f90 +38 -0
- offload/_root/data/findings/nested/controls/ta2-ctl-no-allocatable-component.f90 +42 -0
- offload/_root/data/findings/nested/controls/ta3-ctl-allocatable-scalar-in-the-variable.f90 +38 -0
- offload/_root/data/findings/nested/controls/ta4-ctl-pointer-component-only.f90 +42 -0
- offload/_root/data/findings/nested/controls/u3-ctl-update-member-only.c +24 -0
- offload/_root/data/findings/nested/controls/u4-ctl-two-updates.c +25 -0
- offload/_root/data/findings/nested/controls/u5-ctl-same-list-in-map.c +25 -0
- offload/_root/data/findings/nested/controls/ua2-ctl-variable-root.f90 +37 -0
- offload/_root/data/findings/nested/controls/ua4-ctl-to-in-place-of-alloc-and-update.f90 +37 -0
- offload/_root/data/findings/nested/controls/v2-ctl-parent-first.c +25 -0
- offload/_root/data/findings/nested/controls/v4-ctl-embedded-member.c +24 -0
- offload/_root/data/findings/nested/gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.c +83 -0
- offload/_root/data/findings/nested/gcc-acc-c-parent-and-shared-pointee-one-directive.c +88 -0
- offload/_root/data/findings/nested/gcc-acc-c-struct-and-member-array-one-directive.c +84 -0
- offload/_root/data/findings/nested/gcc-c-always-on-pointer-member-section-ice.c +75 -0
- offload/_root/data/findings/nested/gcc-c-declare-mapper-pointer-member-section-gpu-fault.c +93 -0
- offload/_root/data/findings/nested/gcc-c-from-struct-and-pointee-section-rejected.c +83 -0
- offload/_root/data/findings/nested/gcc-fortran-pointer-component-alloc-bounds-lost.f90 +62 -0
- offload/_root/data/findings/nested/gcc-fortran-root-and-element-pointer-components-ice.f90 +77 -0
- offload/_root/data/findings/nested/nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.c +55 -0
- offload/_root/data/findings/nested/nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.c +86 -0
- offload/_root/data/findings/nvhpc-acc-atomic-update-sum-fort2-crash.f90 +53 -0
- offload/_root/data/findings/nvhpc-c-acc-atomic-update-sum-ice.c +43 -0
- offload/_root/data/findings/nvhpc-c-dist-schedule-chunk-compile-hang.c +41 -0
- offload/_root/data/findings/nvhpc-c-map-present-ignored.c +42 -0
- offload/_root/data/findings/nvhpc-c-ordered-in-target-nvcpfe-crash.c +92 -0
- offload/_root/data/findings/nvhpc-c-parallel-for-firstprivate-in-target.c +62 -0
- offload/_root/data/findings/nvhpc-c-parallel-if-in-target-nvvm-ice.c +56 -0
- offload/_root/data/findings/nvhpc-defaultmap-firstprivate-explicit-map.f90 +45 -0
- offload/_root/data/findings/nvhpc-defaultmap-from-allocatable-indexing.f90 +60 -0
- offload/_root/data/findings/nvhpc-depend-inoutset-ignored.f90 +64 -0
- offload/_root/data/findings/nvhpc-dist-schedule-chunk-illegal-address.f90 +52 -0
- offload/_root/data/findings/nvhpc-managed-acc-shutdown-host-access.f90 +42 -0
- offload/_root/data/findings/nvhpc-parallel-if-in-target-nvvm-ice.f90 +60 -0
- offload/_root/data/findings/oop/afar-final-dealloc-device-link.f90 +85 -0
- offload/_root/data/findings/oop/afar-pdt-length-parameter-not-implemented.f90 +65 -0
- offload/_root/data/findings/oop/cce-class-is-device-link.f90 +86 -0
- offload/_root/data/findings/oop/cce-copy-alloc-component-section-fault.f90 +73 -0
- offload/_root/data/findings/oop/cce-copy-parent-to-component-tofrom-lost.f90 +65 -0
- offload/_root/data/findings/oop/cce-copy-second-member-section-lost.f90 +65 -0
- offload/_root/data/findings/oop/cce-element-component-map-lost.f90 +64 -0
- offload/_root/data/findings/oop/cce-final-dealloc-device-abort.f90 +85 -0
- offload/_root/data/findings/oop/cce-pdt-default-mapper-rejected.f90 +71 -0
- offload/_root/data/findings/oop/cce-polymorphic-dispatch-device-link.f90 +100 -0
- offload/_root/data/findings/oop/cce-section-of-element-component-overlap.f90 +76 -0
- offload/_root/data/findings/oop/cce-select-type-guard-not-taken.f90 +91 -0
- offload/_root/data/findings/oop/cce-udr-derived-type-unsupported.f90 +69 -0
- offload/_root/data/findings/oop/cce21-element-component-map-lost.f90 +62 -0
- offload/_root/data/findings/oop/controls/alloccomp-comp-only.f90 +44 -0
- offload/_root/data/findings/oop/controls/alloccomp-whole-explicit-component.f90 +50 -0
- offload/_root/data/findings/oop/controls/alloccomp-whole.f90 +49 -0
- offload/_root/data/findings/oop/controls/elemsec-element.f90 +47 -0
- offload/_root/data/findings/oop/controls/final-local.f90 +64 -0
- offload/_root/data/findings/oop/controls/host-class-star-select-type.f90 +58 -0
- offload/_root/data/findings/oop/controls/host-firstprivate-defined-assignment.f90 +54 -0
- offload/_root/data/findings/oop/controls/host-lastprivate-defined-assignment.f90 +58 -0
- offload/_root/data/findings/oop/controls/host-private-finalization.f90 +51 -0
- offload/_root/data/findings/oop/controls/host-select-type.f90 +65 -0
- offload/_root/data/findings/oop/controls/parent-and-comp-component-only.f90 +45 -0
- offload/_root/data/findings/oop/controls/pdt-kind.f90 +46 -0
- offload/_root/data/findings/oop/controls/pdt-len-host.f90 +43 -0
- offload/_root/data/findings/oop/controls/pdt-len-unparameterized.f90 +46 -0
- offload/_root/data/findings/oop/controls/poly-dispatch-static.f90 +75 -0
- offload/_root/data/findings/oop/controls/section-alloc-whole-component.f90 +49 -0
- offload/_root/data/findings/oop/controls/section-element-whole-array.f90 +50 -0
- offload/_root/data/findings/oop/controls/section-element-whole-component.f90 +50 -0
- offload/_root/data/findings/oop/controls/section-fixed.f90 +43 -0
- offload/_root/data/findings/oop/controls/tbp-override.f90 +64 -0
- offload/_root/data/findings/oop/gcc-acc-parent-and-member-data-rejected.f90 +63 -0
- offload/_root/data/findings/oop/gcc-pdt-length-parameter-abort.f90 +68 -0
- offload/_root/data/findings/oop/gcc-polymorphic-dispatch-abort.f90 +97 -0
- offload/_root/data/findings/oop/gcc-vtab-not-marked-for-offload.f90 +94 -0
- offload/_root/data/findings/oop/nvhpc-copy-alloc-component-illegal-address.f90 +76 -0
- offload/_root/data/findings/oop/nvhpc-copy-pdt-length-parameter-illegal-address.f90 +69 -0
- offload/_root/data/findings/oop/nvhpc-named-mapper-rejected.f90 +65 -0
- offload/_root/data/findings/oop/nvhpc-polymorphic-dispatch-translate-failure.f90 +90 -0
- offload/_root/data/findings/oop/nvhpc-polymorphism-runtime-unsupported.f90 +94 -0
- offload/_root/data/findings/oop/nvhpc-type-bound-call-rejected.f90 +89 -0
- offload/_root/data/findings/oop/nvhpc-udr-derived-type-rejected.f90 +67 -0
- offload/_root/data/findings/reviews/afar-c-error-directive-in-target-link.json +217 -0
- offload/_root/data/findings/reviews/afar-c-lastprivate-distribute-parallel-for-small-type.json +113 -0
- offload/_root/data/findings/reviews/afar-c-teams-distribute-reduction-first-team.json +130 -0
- offload/_root/data/findings/reviews/afar-c-update-iterator-copy-mode.json +113 -0
- offload/_root/data/findings/reviews/afar-cce19-character-defaultmap.json +292 -0
- offload/_root/data/findings/reviews/afar-clang-requires-device-safesync-hang.json +191 -0
- offload/_root/data/findings/reviews/afar-flang-firstprivate-map-two-targets.json +130 -0
- offload/_root/data/findings/reviews/afar-flang-loop-bind-teams-reduction.json +126 -0
- offload/_root/data/findings/reviews/afar-flang-task-reduction-max.json +113 -0
- offload/_root/data/findings/reviews/afar-flang-thread-limit-target-parallel-do.json +113 -0
- offload/_root/data/findings/reviews/afar-loop-bind-thread-in-teams.json +191 -0
- offload/_root/data/findings/reviews/afar-nontemporal-assumed-shape-ice.json +113 -0
- offload/_root/data/findings/reviews/afar-udr-derived-type-link.json +113 -0
- offload/_root/data/findings/reviews/afar-xnack1-atomic-min-nested-parallel.json +113 -0
- offload/_root/data/findings/reviews/afar-xnack1-target-is-present.json +113 -0
- offload/_root/data/findings/reviews/apps--afar-cce-teams-private-array-nested-parallel-wrong.json +113 -0
- offload/_root/data/findings/reviews/apps--cce20-device-link-infer-address-spaces-crash.json +113 -0
- offload/_root/data/findings/reviews/apps--cce21-device-link-agpr-copy-mfma-assert.json +113 -0
- offload/_root/data/findings/reviews/apps--cce21-private-array-loaded-subscript-wrong.json +113 -0
- offload/_root/data/findings/reviews/apps--gcc-acc-c-tile-partial-tiles-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-c-ordered-doacross-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-c-reduction-task-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-absent-optional-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-critical-target-parallel-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-dist-schedule-chunk.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-linear-parallel-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-named-critical-link.json +126 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-ordered-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-reduction-minus-rejected.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-sections-in-target-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-workdistribute-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--c-allocate-const-mem-firstprivate-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-acc-character-dummy-routine-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-acc-loop-seq-in-routine-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-allocators-stack-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-allocate-align-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-allocate-allocator-modifier-rejected.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-dist-schedule-chunk.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-f-pointer-device-link.json +130 -0
- offload/_root/data/findings/reviews/catalog--cce-c-long-double-ice.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce-c-map-iterator-ice.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce-c-recursive-function-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-sections-in-target-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-allocate-in-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-lastprivate-parallel-in-seq-loop-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-stop-in-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-iterator-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-linear-lastprivate-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-reduction-inscan-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-reduction-task-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce19-reduction-task-addrspacecast-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce20-c-defaultmap-private-storage-rejected.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce20-map-self-rejected.json +204 -0
- offload/_root/data/findings/reviews/catalog--cce21-c-target-loop-ice.json +126 -0
- offload/_root/data/findings/reviews/catalog--defaultmap-present-private-array-abort.json +236 -0
- offload/_root/data/findings/reviews/catalog--nvhpc-acc-associate-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/catalog--nvhpc-c-function-pointer-kernel-missing.json +268 -0
- offload/_root/data/findings/reviews/cce-acc-init-set-runtime-assert.json +113 -0
- offload/_root/data/findings/reviews/cce-acc-reduction-200-int8-scalars-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce-acc-routine-bind-module-ice.json +113 -0
- offload/_root/data/findings/reviews/cce-c-dist-schedule-segv.json +113 -0
- offload/_root/data/findings/reviews/cce-c-map-delete-refcount.json +149 -0
- offload/_root/data/findings/reviews/cce-c-map-present-assert.json +126 -0
- offload/_root/data/findings/reviews/cce-c-openmp45-device-link.json +113 -0
- offload/_root/data/findings/reviews/cce-c-parallel-for-in-target.json +141 -0
- offload/_root/data/findings/reviews/cce-mapper-next-map-copy-back.json +208 -0
- offload/_root/data/findings/reviews/cce-uses-allocators-traits-omp50.json +191 -0
- offload/_root/data/findings/reviews/cce19-c-reduction-63-scalars-one-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce19-target-parallel-guarded-loop.json +113 -0
- offload/_root/data/findings/reviews/cce19-target-parallel-single-ice.json +113 -0
- offload/_root/data/findings/reviews/cce21-alloc-2e32-sum-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce21-defaultmap-aggregate-flag.json +210 -0
- offload/_root/data/findings/reviews/cce21-in-reduction-assumed-shape-write-lost.json +113 -0
- offload/_root/data/findings/reviews/cce21-in-reduction-taskwait-link.json +113 -0
- offload/_root/data/findings/reviews/clang-c-declare-target-to-omp52.json +113 -0
- offload/_root/data/findings/reviews/clang-c-linear-directive-name-hang.json +113 -0
- offload/_root/data/findings/reviews/clang-c-shared-declare-target-combined.json +132 -0
- offload/_root/data/findings/reviews/dataenv--cce-value-dummy-target-write-visible.json +113 -0
- offload/_root/data/findings/reviews/defaultmap-none-loop-variable.json +113 -0
- offload/_root/data/findings/reviews/fortran-schedule-static-in-target.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce-common-block-name-in-map-rejected.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce-list-directed-print-in-target-copy-crash.json +217 -0
- offload/_root/data/findings/reviews/fresh--cce19-acc-automatic-array-copyout-copy-crash.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce21-combined-if-runtime-expr-loop-skipped.json +113 -0
- offload/_root/data/findings/reviews/fresh--nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.json +113 -0
- offload/_root/data/findings/reviews/fresh--nvhpc-teams-loop-module-allocatable-assign-fort2-crash.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1505-cce20.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1540-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1978-cce19.json +130 -0
- offload/_root/data/findings/reviews/fuzz--2334-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--591-cce19.json +147 -0
- offload/_root/data/findings/reviews/fuzz--650-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--916-afar.json +130 -0
- offload/_root/data/findings/reviews/fuzz--98-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b1-121-afar.json +160 -0
- offload/_root/data/findings/reviews/fuzz--b2-209-cce19.json +141 -0
- offload/_root/data/findings/reviews/fuzz--b2-68-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b2-85-cce20.json +217 -0
- offload/_root/data/findings/reviews/fuzz--b3-188-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b3-278-cce19.json +212 -0
- offload/_root/data/findings/reviews/fuzz--b3-54-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b3-61-cce20.json +191 -0
- offload/_root/data/findings/reviews/fuzz--b4-86-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--gcc-declare-reduction-module-not-found.json +113 -0
- offload/_root/data/findings/reviews/fuzz--gcc-target-simd-map-nontemporal-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-allocatable-component-implicit-map-illegal-address.json +141 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-assumed-length-character-dummy-map-ice.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-default-none-reduction-lastprivate-fort1-crash.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-firstprivate-lastprivate-ice.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-to-scalar-reduction-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-depend-implicit-map-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-distribute-parallel-num-threads-writes-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-end-distribute-simd-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-loop-character-achar-unsupported.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-map-always-after-map-to-not-copied-back.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-num-threads-reduction-identity-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-firstprivate-translate-failure.json +191 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-single-hang.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-collapse-translate-failure.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-no-end-directive-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--par-s1-2082-gcc_g90.json +126 -0
- offload/_root/data/findings/reviews/fuzz--s1-2370-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-2592-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-3463-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-6760-cce20.json +130 -0
- offload/_root/data/findings/reviews/fuzz--s1-6888-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-7882-cce20.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-8634-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-91-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-9443-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-9914-cce19.json +141 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-bind-device-type-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-detach-delete-attach-underflow.json +314 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-gang-dim-collapse-force-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-init-set-shutdown-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-link-in-routine-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-use-device-allocatable-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-motion-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-omp60-undocumented-rejected.json +217 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-omp60-unimplemented-rejected.json +236 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-target-in-task-mandatory-device-not-found.json +236 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-uses-allocators-traits-unimplemented.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-declare-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-defaultmap-to-pointer-copy-back.json +217 -0
- offload/_root/data/findings/reviews/gcc--gcc-loop-bind-default-none-rejected.json +113 -0
- offload/_root/data/findings/reviews/harvest--afar-flang-strided-target-update.json +141 -0
- offload/_root/data/findings/reviews/harvest--cce-acc-declare-create-module-allocatable-xnack1-fault.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce-c-implicit-struct-map-partly-present.json +217 -0
- offload/_root/data/findings/reviews/harvest--cce-c-strided-target-update.json +141 -0
- offload/_root/data/findings/reviews/harvest--cce-ftn-target-parallel-thread-query-ice.json +130 -0
- offload/_root/data/findings/reviews/harvest--cce-named-constant-array-declare-target-routine-rejected.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce-use-device-ptr-c-ptr-not-converted.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce21-declare-target-link-module-variable-write-lost.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce21-internal-procedure-calls-internal-in-target-fault.json +158 -0
- offload/_root/data/findings/reviews/harvest--gcc-acc-declare-create-allocatable-not-mapped.json +204 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-same-item-two-maps-rejected.json +143 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-strided-section-rejected.json +164 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-target-data-struct-pointer-section-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-target-data-two-maps-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--gcc-teams-simd-matmul-allocatable-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-c-target-data-if-false-use-device-ptr-garbage.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-named-constant-array-declare-target-routine-rejected.json +126 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-use-device-ptr-c-ptr-not-found.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc2511-target-nowait-in-parallel-for-ice.json +130 -0
- offload/_root/data/findings/reviews/hecbench--gcc-c-float16-array-in-target-lto-ice.json +217 -0
- offload/_root/data/findings/reviews/hecbench--gcc-c-swar-popcount-assembler-error.json +126 -0
- offload/_root/data/findings/reviews/malloc--afar-device-malloc-in-kernel-corrupts-records.json +270 -0
- offload/_root/data/findings/reviews/multithread-allocatable-section-maps.json +191 -0
- offload/_root/data/findings/reviews/nested--afar-cce-c-call-result-member-in-target-rejected.json +113 -0
- offload/_root/data/findings/reviews/nested--afar-cce-c-update-struct-and-member-rejected.json +126 -0
- offload/_root/data/findings/reviews/nested--afar-flang-pointer-root-allocatable-component-enter-data-fault.json +191 -0
- offload/_root/data/findings/reviews/nested--cce-c-struct-and-nested-pointee-sections-ice.json +113 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-nested-allocatable-component-copy-fault.json +214 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.json +191 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.json +297 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.json +204 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-parent-and-shared-pointee-one-directive.json +130 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-struct-and-member-array-one-directive.json +141 -0
- offload/_root/data/findings/reviews/nested--gcc-c-always-on-pointer-member-section-ice.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-c-declare-mapper-pointer-member-section-gpu-fault.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-c-from-struct-and-pointee-section-rejected.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-fortran-pointer-component-alloc-bounds-lost.json +217 -0
- offload/_root/data/findings/reviews/nested--gcc-fortran-root-and-element-pointer-components-ice.json +217 -0
- offload/_root/data/findings/reviews/nested--nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.json +204 -0
- offload/_root/data/findings/reviews/nested--nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.json +191 -0
- offload/_root/data/findings/reviews/nvhpc-c-acc-atomic-update-sum-ice.json +277 -0
- offload/_root/data/findings/reviews/nvhpc-c-dist-schedule-chunk-compile-hang.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-map-present-ignored.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-ordered-in-target-nvcpfe-crash.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-parallel-for-firstprivate-in-target.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-defaultmap-firstprivate-explicit-map.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-defaultmap-from-allocatable-indexing.json +132 -0
- offload/_root/data/findings/reviews/nvhpc-depend-inoutset-ignored.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-dist-schedule-chunk-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-managed-acc-shutdown-host-access.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-parallel-if-in-target-nvvm-ice.json +113 -0
- offload/_root/data/findings/reviews/oop--afar-final-dealloc-device-link.json +132 -0
- offload/_root/data/findings/reviews/oop--afar-pdt-length-parameter-not-implemented.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-class-is-device-link.json +130 -0
- offload/_root/data/findings/reviews/oop--cce-copy-alloc-component-section-fault.json +217 -0
- offload/_root/data/findings/reviews/oop--cce-copy-parent-to-component-tofrom-lost.json +217 -0
- offload/_root/data/findings/reviews/oop--cce-copy-second-member-section-lost.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-element-component-map-lost.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-final-dealloc-device-abort.json +208 -0
- offload/_root/data/findings/reviews/oop--cce-pdt-default-mapper-rejected.json +191 -0
- offload/_root/data/findings/reviews/oop--cce-polymorphic-dispatch-device-link.json +247 -0
- offload/_root/data/findings/reviews/oop--cce-section-of-element-component-overlap.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-select-type-guard-not-taken.json +191 -0
- offload/_root/data/findings/reviews/oop--cce-udr-derived-type-unsupported.json +132 -0
- offload/_root/data/findings/reviews/oop--gcc-acc-parent-and-member-data-rejected.json +141 -0
- offload/_root/data/findings/reviews/oop--gcc-pdt-length-parameter-abort.json +141 -0
- offload/_root/data/findings/reviews/oop--gcc-polymorphic-dispatch-abort.json +217 -0
- offload/_root/data/findings/reviews/oop--gcc-vtab-not-marked-for-offload.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-copy-alloc-component-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-copy-pdt-length-parameter-illegal-address.json +236 -0
- offload/_root/data/findings/reviews/oop--nvhpc-named-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-polymorphic-dispatch-translate-failure.json +223 -0
- offload/_root/data/findings/reviews/oop--nvhpc-polymorphism-runtime-unsupported.json +126 -0
- offload/_root/data/findings/reviews/oop--nvhpc-type-bound-call-rejected.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-udr-derived-type-rejected.json +113 -0
- offload/_root/data/findings/reviews/stress--afar-c-lastprivate-combined-target-not-mapped.json +113 -0
- offload/_root/data/findings/reviews/stress--afar-target-scalar-implicit-firstprivate.json +175 -0
- offload/_root/data/findings/reviews/stress--cce-acc-declare-create-scalar-serial-firstprivate.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-c-distribute-lastprivate-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-c-flto-offload-dropped.json +204 -0
- offload/_root/data/findings/reviews/stress--cce-ftn-cif-record-split-abort.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-lastprivate-num-threads-collapse-simd.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-teams-reduction-many-teams-wrap.json +113 -0
- offload/_root/data/findings/reviews/stress--cce21-declare-target-scalar-map-write-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--gcc-declare-target-allocatable-component-ice.json +191 -0
- offload/_root/data/findings/reviews/stress--nvhpc-acc-derived-type-component-not-copied.json +126 -0
- offload/_root/data/findings/reviews/stress--nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-declare-target-scalar-write-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-lastprivate-combined-target-not-mapped.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-target-scalar-implicit-firstprivate.json +130 -0
- offload/_root/data/findings/reviews/target-update-sections-in-parallel.json +113 -0
- offload/_root/data/findings/stress/afar-c-lastprivate-combined-target-not-mapped.c +72 -0
- offload/_root/data/findings/stress/afar-target-scalar-implicit-firstprivate.f90 +47 -0
- offload/_root/data/findings/stress/cce-acc-declare-create-scalar-serial-firstprivate.f90 +43 -0
- offload/_root/data/findings/stress/cce-c-distribute-lastprivate-lost.c +52 -0
- offload/_root/data/findings/stress/cce-c-flto-offload-dropped.c +73 -0
- offload/_root/data/findings/stress/cce-ftn-cif-record-split-abort.f90 +109 -0
- offload/_root/data/findings/stress/cce-lastprivate-num-threads-collapse-simd.f90 +66 -0
- offload/_root/data/findings/stress/cce-teams-reduction-many-teams-wrap.f90 +55 -0
- offload/_root/data/findings/stress/cce21-declare-target-scalar-map-write-lost.f90 +58 -0
- offload/_root/data/findings/stress/controls/gcc-declare-target-allocatable-component-control.f90 +29 -0
- offload/_root/data/findings/stress/gcc-declare-target-allocatable-component-ice.f90 +61 -0
- offload/_root/data/findings/stress/nvhpc-acc-derived-type-component-not-copied.f90 +33 -0
- offload/_root/data/findings/stress/nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.c +62 -0
- offload/_root/data/findings/stress/nvhpc-declare-target-scalar-write-lost.f90 +43 -0
- offload/_root/data/findings/stress/nvhpc-lastprivate-combined-target-not-mapped.f90 +60 -0
- offload/_root/data/findings/stress/nvhpc-target-scalar-implicit-firstprivate.f90 +41 -0
- offload/_root/data/findings/target-update-sections-in-parallel.f90 +53 -0
- offload/_root/data/issues.json +1 -0
- offload/_root/data/search.json +1 -0
- offload/_root/data/vendor/checks/build.py +288 -0
- offload/_version.py +24 -0
- offload/canuse.py +88 -0
- offload/cli.py +52 -0
- offload/data.py +85 -0
- offload/engine/__init__.py +0 -0
- offload/engine/acc_c_gen.py +415 -0
- offload/engine/acc_gen.py +1104 -0
- offload/engine/acc_rules.py +656 -0
- offload/engine/apps.py +804 -0
- offload/engine/baseline.py +324 -0
- offload/engine/c_gen.py +883 -0
- offload/engine/c_program.py +913 -0
- offload/engine/c_rules.py +503 -0
- offload/engine/campaign.py +1180 -0
- offload/engine/campaigns/__init__.py +2 -0
- offload/engine/campaigns/hecbench.py +153 -0
- offload/engine/campaigns/nested.py +76 -0
- offload/engine/campaigns/oop.py +61 -0
- offload/engine/canary.py +275 -0
- offload/engine/catalog.py +860 -0
- offload/engine/citations.py +532 -0
- offload/engine/clang_oracle.py +208 -0
- offload/engine/combos.py +234 -0
- offload/engine/confirm/__init__.py +2 -0
- offload/engine/confirm/backlog.py +159 -0
- offload/engine/confirm/claims.py +423 -0
- offload/engine/confirm/collectors.py +665 -0
- offload/engine/confirm/decisions.py +202 -0
- offload/engine/confirm/draft.py +195 -0
- offload/engine/confirm/engine.py +157 -0
- offload/engine/confirm/execute.py +382 -0
- offload/engine/confirm/facts.py +467 -0
- offload/engine/confirm/findings.py +617 -0
- offload/engine/confirm/forms.py +145 -0
- offload/engine/confirm/ingest.py +372 -0
- offload/engine/confirm/jobs.py +215 -0
- offload/engine/confirm/legality.py +323 -0
- offload/engine/confirm/machines.py +254 -0
- offload/engine/confirm/minimize.py +268 -0
- offload/engine/confirm/model.py +249 -0
- offload/engine/confirm/ports.py +107 -0
- offload/engine/confirm/programs.py +222 -0
- offload/engine/confirm/registry.py +151 -0
- offload/engine/confirm/regress.py +278 -0
- offload/engine/confirm/rules.py +565 -0
- offload/engine/confirm/store.py +63 -0
- offload/engine/confirm/triage.py +838 -0
- offload/engine/confirm/validate.py +607 -0
- offload/engine/confirm/witness.py +355 -0
- offload/engine/corpus_check.py +388 -0
- offload/engine/coverage.py +318 -0
- offload/engine/dataenv_gen.py +1318 -0
- offload/engine/dataenv_rules.py +278 -0
- offload/engine/devtemps.py +146 -0
- offload/engine/expected.py +2559 -0
- offload/engine/f2c.py +1783 -0
- offload/engine/finding_claims.py +330 -0
- offload/engine/finding_header.py +229 -0
- offload/engine/finding_rows.py +382 -0
- offload/engine/flang_oracle.py +299 -0
- offload/engine/fsource.py +620 -0
- offload/engine/fuzz.py +2455 -0
- offload/engine/fuzz_base.py +2016 -0
- offload/engine/fuzz_campaign.py +592 -0
- offload/engine/fuzz_exec.py +798 -0
- offload/engine/fuzz_min.py +1049 -0
- offload/engine/fuzz_profile.py +340 -0
- offload/engine/fuzz_report.py +1270 -0
- offload/engine/fuzz_steer.py +181 -0
- offload/engine/gate.py +1013 -0
- offload/engine/gate_report.py +711 -0
- offload/engine/gate_run.py +118 -0
- offload/engine/gate_stored.py +466 -0
- offload/engine/gen.py +1114 -0
- offload/engine/gen_templates.py +2583 -0
- offload/engine/grammar.py +695 -0
- offload/engine/harness.py +1472 -0
- offload/engine/harvest/__init__.py +3 -0
- offload/engine/harvest/c_runtime.py +465 -0
- offload/engine/harvest/checks.py +534 -0
- offload/engine/harvest/convert.py +784 -0
- offload/engine/harvest/f_runtime.py +668 -0
- offload/engine/harvest/filters.py +338 -0
- offload/engine/harvest/history.py +122 -0
- offload/engine/harvest/inventory.py +399 -0
- offload/engine/harvest2/__init__.py +5 -0
- offload/engine/harvest2/aomp.py +119 -0
- offload/engine/harvest2/examples.py +116 -0
- offload/engine/harvest2/gomp.py +679 -0
- offload/engine/harvest2/hand.py +150 -0
- offload/engine/harvest2/split.py +78 -0
- offload/engine/harvest_known/__init__.py +2 -0
- offload/engine/harvest_known/apps.py +65 -0
- offload/engine/harvest_known/cases.py +128 -0
- offload/engine/harvest_known/centres.py +184 -0
- offload/engine/harvest_known/forum.py +180 -0
- offload/engine/harvest_known/relnotes.py +42 -0
- offload/engine/harvest_known/textscan.py +107 -0
- offload/engine/hdrwrap.py +42 -0
- offload/engine/hecbench.py +568 -0
- offload/engine/hecbench_report.py +265 -0
- offload/engine/hecbench_run.py +483 -0
- offload/engine/idioms.py +1427 -0
- offload/engine/kbody_cites.py +81 -0
- offload/engine/kbody_emit.py +949 -0
- offload/engine/kbody_gen.py +795 -0
- offload/engine/legality_review.py +236 -0
- offload/engine/localcfg.py +58 -0
- offload/engine/malloc_dd.py +267 -0
- offload/engine/mutate.py +1933 -0
- offload/engine/nested_cites.py +196 -0
- offload/engine/nested_emit.py +789 -0
- offload/engine/nested_gen.py +1721 -0
- offload/engine/offload_scope.py +197 -0
- offload/engine/ompvv.py +624 -0
- offload/engine/oop_gen.py +2249 -0
- offload/engine/prerun.py +1435 -0
- offload/engine/program_source.py +739 -0
- offload/engine/provenance.py +103 -0
- offload/engine/reduce.py +2098 -0
- offload/engine/report.py +3374 -0
- offload/engine/root.py +33 -0
- offload/engine/rules.py +4256 -0
- offload/engine/run_matrix.py +325 -0
- offload/engine/site/__init__.py +1 -0
- offload/engine/site/columns.py +53 -0
- offload/engine/site/data.py +648 -0
- offload/engine/site/header.py +228 -0
- offload/engine/site/inputs.py +115 -0
- offload/engine/site/matrix.py +434 -0
- offload/engine/site/scrub.py +294 -0
- offload/engine/skeleton.py +121 -0
- offload/engine/spec_text.py +242 -0
- offload/engine/stress.py +4122 -0
- offload/engine/stress_c.py +1000 -0
- offload/engine/stress_exec.py +805 -0
- offload/engine/stress_min.py +248 -0
- offload/engine/stress_report.py +552 -0
- offload/engine/textclean.py +97 -0
- offload/engine/toolchains.py +1070 -0
- offload/engine/transforms.py +511 -0
- offload/engine/usage.py +1252 -0
- offload/engine/widen.py +673 -0
- offload/engine/widen_progs.py +2396 -0
- offload/issues.py +146 -0
- offtarget-0.1.0.dist-info/METADATA +86 -0
- offtarget-0.1.0.dist-info/RECORD +886 -0
- offtarget-0.1.0.dist-info/WHEEL +4 -0
- offtarget-0.1.0.dist-info/entry_points.txt +2 -0
- offtarget-0.1.0.dist-info/licenses/LICENSE +21 -0
- offtarget-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +20 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <omp.h>
|
|
3
|
+
|
|
4
|
+
enum { n = 64 };
|
|
5
|
+
|
|
6
|
+
int main(void) {
|
|
7
|
+
int a[n], b[n];
|
|
8
|
+
int host_flag = 1, bad = 0;
|
|
9
|
+
for (int i = 0; i < n; i++) {
|
|
10
|
+
a[i] = i + 1;
|
|
11
|
+
b[i] = 0;
|
|
12
|
+
}
|
|
13
|
+
{
|
|
14
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag)
|
|
15
|
+
{
|
|
16
|
+
host_flag = omp_is_initial_device();
|
|
17
|
+
for (int i = 0; i < n; i++)
|
|
18
|
+
b[i] = 2 * a[i] + 1;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
for (int i = 0; i < n; i++)
|
|
22
|
+
bad += b[i] != 2 * (i + 1) + 1;
|
|
23
|
+
printf("bad= %d\n", bad);
|
|
24
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, bad == 0 ? "pass" : "fail");
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
program target_no_task
|
|
2
|
+
use omp_lib, only: omp_is_initial_device
|
|
3
|
+
implicit none
|
|
4
|
+
integer, parameter :: n = 64
|
|
5
|
+
integer :: a(n), b(n)
|
|
6
|
+
integer :: i, host_flag, bad
|
|
7
|
+
do i = 1, n
|
|
8
|
+
a(i) = i
|
|
9
|
+
b(i) = 0
|
|
10
|
+
end do
|
|
11
|
+
host_flag = 1
|
|
12
|
+
!$omp target map(to: a) map(from: b) map(tofrom: host_flag)
|
|
13
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
14
|
+
do i = 1, n
|
|
15
|
+
b(i) = 2*a(i) + 1
|
|
16
|
+
end do
|
|
17
|
+
!$omp end target
|
|
18
|
+
bad = count(b /= 2*[(i, i = 1, n)] + 1)
|
|
19
|
+
print '(a,i0)', 'bad= ', bad
|
|
20
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', bad == 0)
|
|
21
|
+
end program target_no_task
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
! # Finding (GCC 16.2): OpenACC device_type and routine bind clauses are rejected (Fortran); the reproducer is the catalog program
|
|
2
|
+
! acc34-clause-device_type
|
|
3
|
+
!
|
|
4
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
! NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
7
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
! - failure: rejected
|
|
9
|
+
! - observed: `Error: Failed to match clause at (1)` at device_type(*) (and at the bind clause of acc34-clause-bind), on both GPUs.
|
|
10
|
+
! acc34-clause-bind also reports `Invalid NAME 'host_val' in !$ACC ROUTINE (NAME )` at `!$acc routine(host_val) seq
|
|
11
|
+
! bind(dev_val)`: the named form of the routine directive names a procedure gfortran does not accept there (an external
|
|
12
|
+
! procedure); it is the same program's second rejection, not studied separately.
|
|
13
|
+
! - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
14
|
+
! - spec: the device_type clause (OpenACC 3.4 §2.4 l.1013-1015) and the routine directive's bind clause (§2.15.1 l.3405-3407: "The
|
|
15
|
+
! bind clause specifies the name to use when calling the procedure on a device other than the host"); both are OpenACC 2.0
|
|
16
|
+
! clauses.
|
|
17
|
+
! - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
18
|
+
! found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
19
|
+
! is documented.
|
|
20
|
+
! - other families: CCE 19/20/21 (MI300A, MI250X) and NVHPC 25.11/26.9 compile and run both programs correctly.
|
|
21
|
+
! - gate and confirmer: 4 cells (2 gcc_g90, 2 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
22
|
+
! results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
23
|
+
! compiler_bug (R11-compile-rejection) 4
|
|
24
|
+
! - catalog programs (2): acc34-clause-bind, acc34-clause-device_type
|
|
25
|
+
! - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
26
|
+
! check every program against the catalog rules and the offload scope as it is built; no
|
|
27
|
+
! compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
28
|
+
! family's case (catalog/machines.yaml under_test_only).
|
|
29
|
+
! Generated by compliance.gen (OpenACC 3.4, free-form Fortran). Do not edit.
|
|
30
|
+
! id: acc34-clause-device_type
|
|
31
|
+
! primary atom: acc.clause.device_type
|
|
32
|
+
! legal: yes
|
|
33
|
+
! observable: yes
|
|
34
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
35
|
+
! evidence: implementation_defined
|
|
36
|
+
! needs: none
|
|
37
|
+
! std: f2008
|
|
38
|
+
! no oracle (implementation_defined): the device types and their names are implementation-defined; the clauses after device_type(*)
|
|
39
|
+
! are hints here (vector_length)
|
|
40
|
+
! basis: OpenACC 3.4 §2.4, p.32: "The supported device types are implementation-defined."
|
|
41
|
+
program gen_prog
|
|
42
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
43
|
+
implicit none
|
|
44
|
+
integer, parameter :: n = 64
|
|
45
|
+
integer, allocatable, target :: a(:), b(:)
|
|
46
|
+
integer :: ref(n)
|
|
47
|
+
integer :: i, host_flag
|
|
48
|
+
logical :: ok
|
|
49
|
+
allocate(a(n), b(n))
|
|
50
|
+
do i = 1, n
|
|
51
|
+
a(i) = i
|
|
52
|
+
b(i) = 0
|
|
53
|
+
ref(i) = 2*i + 1
|
|
54
|
+
end do
|
|
55
|
+
host_flag = 1
|
|
56
|
+
!$acc parallel loop copyin(a) copyout(b) copy(host_flag) device_type(*) vector_length(32)
|
|
57
|
+
do i = 1, n
|
|
58
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
59
|
+
b(i) = 2*a(i) + 1
|
|
60
|
+
end do
|
|
61
|
+
ok = all(b == ref)
|
|
62
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
63
|
+
deallocate(a, b)
|
|
64
|
+
end program gen_prog
|
|
65
|
+
! site:
|
|
66
|
+
! title: OpenACC device_type clause and routine bind clause are rejected ("Failed to match clause")
|
|
67
|
+
! summary: GCC 16.2 rejects the OpenACC device_type clause (here device_type(*) vector_length(32) on a parallel loop) and the bind
|
|
68
|
+
! + clause of the routine directive, in Fortran ("Failed to match clause") and C ("expected an OpenACC clause before '(' token").
|
|
69
|
+
! + Both are OpenACC 2.0 clauses, and GCC documents OpenACC 2.6. CCE and NVHPC compile and run the Fortran programs, NVHPC the C
|
|
70
|
+
! + programs.
|
|
71
|
+
! end site
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// # Finding (GCC 16.2): OpenACC device_type and routine bind clauses are rejected (C); the reproducer is the catalog program
|
|
2
|
+
// acc34-c-clause-device_type
|
|
3
|
+
//
|
|
4
|
+
// - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
// NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
// - build: gcc -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90); -foffload=nvptx-none
|
|
7
|
+
// -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
// - failure: rejected: expected an OpenACC clause before
|
|
9
|
+
// - observed: `error: expected an OpenACC clause before '(' token` on both GPUs.
|
|
10
|
+
// - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
11
|
+
// - spec: the device_type clause (OpenACC 3.4 §2.4 l.1013-1015) and the routine directive's bind clause (§2.15.1 l.3405-3407: "The
|
|
12
|
+
// bind clause specifies the name to use when calling the procedure on a device other than the host"); both are OpenACC 2.0
|
|
13
|
+
// clauses.
|
|
14
|
+
// - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
15
|
+
// found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
16
|
+
// is documented.
|
|
17
|
+
// - other families: NVHPC 25.11/26.9 compile and run both programs correctly (CCE has no OpenACC C).
|
|
18
|
+
// - gate and confirmer: 4 cells (2 gcc_g90, 2 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
19
|
+
// results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
20
|
+
// compiler_bug (R11-compile-rejection) 4
|
|
21
|
+
// - catalog programs (2): acc34-c-clause-bind, acc34-c-clause-device_type
|
|
22
|
+
// - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
23
|
+
// check every program against the catalog rules and the offload scope as it is built; no
|
|
24
|
+
// compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
25
|
+
// family's case (catalog/machines.yaml under_test_only).
|
|
26
|
+
// Generated by compliance.acc_c_gen (OpenACC 3.4, C11): the C port (offload.engine.f2c) of acc34-clause-device_type. Do not edit.
|
|
27
|
+
// id: acc34-c-clause-device_type
|
|
28
|
+
// primary atom: acc.clause.device_type
|
|
29
|
+
// legal: yes
|
|
30
|
+
// observable: yes
|
|
31
|
+
// ran_on_host: inside the compute region of interest (acc_on_device)
|
|
32
|
+
// evidence: implementation_defined
|
|
33
|
+
// needs: none
|
|
34
|
+
// std: c11
|
|
35
|
+
// no oracle (implementation_defined): the device types and their names are implementation-defined; the clauses after device_type(*)
|
|
36
|
+
// are hints here (vector_length)
|
|
37
|
+
// basis: OpenACC 3.4 §2.4, p.32: "The supported device types are implementation-defined."
|
|
38
|
+
#include <stdio.h>
|
|
39
|
+
#include <stdbool.h>
|
|
40
|
+
#include <openacc.h>
|
|
41
|
+
|
|
42
|
+
enum { n = 64 };
|
|
43
|
+
|
|
44
|
+
int main(void) {
|
|
45
|
+
int a[n];
|
|
46
|
+
int b[n];
|
|
47
|
+
int ref[n];
|
|
48
|
+
int host_flag;
|
|
49
|
+
bool ok;
|
|
50
|
+
for (int i = 1; i <= n; i++) {
|
|
51
|
+
a[i - 1] = i;
|
|
52
|
+
b[i - 1] = 0;
|
|
53
|
+
ref[i - 1] = 2 * i + 1;
|
|
54
|
+
}
|
|
55
|
+
host_flag = 1;
|
|
56
|
+
#pragma acc parallel loop copyin(a) copyout(b) copy(host_flag) device_type(*) \
|
|
57
|
+
vector_length(32)
|
|
58
|
+
for (int i = 1; i <= n; i++) {
|
|
59
|
+
if (i == 1) host_flag = (acc_on_device(acc_device_host) ? 1 : 0);
|
|
60
|
+
b[i - 1] = 2 * a[i - 1] + 1;
|
|
61
|
+
}
|
|
62
|
+
bool t1_ = true;
|
|
63
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
64
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
65
|
+
ok = t1_;
|
|
66
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
// site:
|
|
70
|
+
// title: OpenACC device_type clause and routine bind clause are rejected (C)
|
|
71
|
+
// summary: GCC 16.2 rejects the OpenACC device_type clause (here device_type(*) vector_length(32) on a parallel loop) and the bind
|
|
72
|
+
// + clause of the routine directive, in Fortran ("Failed to match clause") and C ("expected an OpenACC clause before '(' token").
|
|
73
|
+
// + Both are OpenACC 2.0 clauses, and GCC documents OpenACC 2.6. CCE and NVHPC compile and run the Fortran programs, NVHPC the C
|
|
74
|
+
// + programs.
|
|
75
|
+
// same_as: gcc/gcc-acc-bind-device-type-rejected
|
|
76
|
+
// end site
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// # Finding (GCC 16.2): the C form of gcc-acc-detach-delete-attach-underflow.f90
|
|
2
|
+
//
|
|
3
|
+
// - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
4
|
+
// NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
5
|
+
// - build: gcc -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90); -foffload=nvptx-none
|
|
6
|
+
// -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
7
|
+
// - failure: run_error: attach count underflow
|
|
8
|
+
// - observed: `libgomp: attach count underflow` and exit 1 at the exit data delete, in every run on both GPUs (this file: gcc_sm80
|
|
9
|
+
// and gcc_g90, 5 of 5 each with OMP_TARGET_OFFLOAD mandatory and 5 of 5 unset; results/gcc/<tc>/probes-findings.jsonl); the
|
|
10
|
+
// parallel loop before it ran on the device.
|
|
11
|
+
// - expected: `sum= 2144`, then `RESULT ran_on_host=0 check=pass`
|
|
12
|
+
// - rule: in OpenACC 2.6, the version GCC documents, the delete clause performs a detach action, and "If the current device is a
|
|
13
|
+
// shared memory device, or if var is not present on the device, or if the attachment counter for var for the pointer is zero, no
|
|
14
|
+
// action is taken. Otherwise, the attachment counter for the pointer var is decremented" (OpenACC 2.6, section 2.7.2 "Detach
|
|
15
|
+
// Action", margin lines 1115-1122; the same sentence in OpenACC 3.0, 3.2 and 3.3, the last at margin lines 1710-1711). After exit
|
|
16
|
+
// data detach the attachment counter is zero, so the delete leaves it alone. OpenACC 3.4 rewords the actions with the same
|
|
17
|
+
// intent: the delete clause performs a decrement counter action on the attachment counter (OpenACC 3.4 §2.7.12 l.2022-2025), "If
|
|
18
|
+
// the reference counter is already zero, its value is left unchanged" (§2.7.2 l.1733-1735), and a detach pointer action at a zero
|
|
19
|
+
// counter is defined (§2.7.2 l.1794-1796); the data clause errors (§2.7.3) name no attachment-counter error.
|
|
20
|
+
// - same-compiler control (correct: `sum= 2144`, 5 of 5 runs on each GPU): the same program without the exit data detach
|
|
21
|
+
// (controls/gcc-acc{,-c}-detach-control.{f90,c}).
|
|
22
|
+
// - other families: CCE 19/20/21 (Fortran, MI300A and MI250X) and NVHPC 25.11/26.9 (both languages, separate and managed memory)
|
|
23
|
+
// run the catalog programs acc34-clause-detach and acc34-c-clause-detach to the end (their check cannot see the detach:
|
|
24
|
+
// unobservable). The site's finding matrix runs this file on every compiler.
|
|
25
|
+
// - gate and confirmer: 2 cells (1 gcc_g90, 1 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
26
|
+
// results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
27
|
+
// needs_human (R22-expected-weak) 2
|
|
28
|
+
// - catalog programs (1): acc34-c-clause-detach
|
|
29
|
+
// - legality: read against the spec (the rule above); the catalog programs of the list are legal by construction (offload.engine.gen,
|
|
30
|
+
// c_gen and acc_gen; no compiler). GCC is a compiler under test only and never a legality witness.
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#include <stdlib.h>
|
|
33
|
+
#include <openacc.h>
|
|
34
|
+
|
|
35
|
+
enum { n = 64 };
|
|
36
|
+
struct holder {
|
|
37
|
+
int *v;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
int main(void) {
|
|
41
|
+
int b[n];
|
|
42
|
+
int host_flag = 1, sum = 0;
|
|
43
|
+
struct holder h;
|
|
44
|
+
h.v = malloc(n * sizeof(int));
|
|
45
|
+
for (int i = 0; i < n; i++) {
|
|
46
|
+
h.v[i] = 1;
|
|
47
|
+
b[i] = 0;
|
|
48
|
+
}
|
|
49
|
+
#pragma acc enter data copyin(h)
|
|
50
|
+
#pragma acc enter data copyin(h.v[0:n])
|
|
51
|
+
#pragma acc parallel loop copyout(b) copy(host_flag) present(h)
|
|
52
|
+
for (int i = 0; i < n; i++) {
|
|
53
|
+
if (i == 0) host_flag = acc_on_device(acc_device_host) ? 1 : 0;
|
|
54
|
+
b[i] = i + 1 + h.v[i];
|
|
55
|
+
}
|
|
56
|
+
#pragma acc exit data detach(h.v)
|
|
57
|
+
#pragma acc exit data delete(h.v[0:n])
|
|
58
|
+
#pragma acc exit data delete(h)
|
|
59
|
+
for (int i = 0; i < n; i++)
|
|
60
|
+
sum += b[i];
|
|
61
|
+
free(h.v);
|
|
62
|
+
printf("sum= %d\n", sum);
|
|
63
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, sum == 2144 ? "pass" : "fail");
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
// site:
|
|
67
|
+
// title: OpenACC: exit data delete after exit data detach stops with "attach count underflow" (C)
|
|
68
|
+
// summary: After exit data detach of an attached member pointer, exit data delete of its target should leave the attachment counter
|
|
69
|
+
// + at zero and free the data. GCC 16.2's libgomp stops the program instead with "attach count underflow" (exit 1), in Fortran and
|
|
70
|
+
// + C, on the MI250X and the A100; without the detach the same program runs correctly. OpenACC 2.6, the version GCC documents, says
|
|
71
|
+
// + a detach action at a zero attachment counter takes no action.
|
|
72
|
+
// control: gcc/controls/gcc-acc-c-detach-control.c the same program without the exit data detach
|
|
73
|
+
// same_as: gcc/gcc-acc-detach-delete-attach-underflow
|
|
74
|
+
// end site
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// # Finding (GCC 16.2): the OpenACC 3.3 gang(dim:) argument is rejected (C); the reproducer is the catalog program
|
|
2
|
+
// acc34-c-clause-gang-dim
|
|
3
|
+
//
|
|
4
|
+
// - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
// NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
// - build: gcc -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90); -foffload=nvptx-none
|
|
7
|
+
// -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
// - failure: rejected
|
|
9
|
+
// - observed: `error: 'dim' undeclared (first use in this function)` on both GPUs.
|
|
10
|
+
// - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
11
|
+
// - spec: the dim argument of gang (OpenACC 3.4 §2.9.2 l.2371; added in 3.3, "Changes from Version 3.2 to 3.3", margin line 800).
|
|
12
|
+
// - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
13
|
+
// found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
14
|
+
// is documented.
|
|
15
|
+
// - other families: NVHPC 25.11/26.9 compile and run it correctly.
|
|
16
|
+
// - gate and confirmer: 4 cells (2 gcc_g90, 2 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
17
|
+
// results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
18
|
+
// compiler_bug (R11-compile-rejection) 2, needs_human (R12b-compile-undecided) 2
|
|
19
|
+
// - catalog programs (2): acc34-c-clause-gang-dim, acc34-c-clause-gang-dim-binop
|
|
20
|
+
// - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
21
|
+
// check every program against the catalog rules and the offload scope as it is built; no
|
|
22
|
+
// compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
23
|
+
// family's case (catalog/machines.yaml under_test_only).
|
|
24
|
+
// Generated by compliance.acc_c_gen (OpenACC 3.4, C11): the C port (offload.engine.f2c) of acc34-clause-gang-dim. Do not edit.
|
|
25
|
+
// id: acc34-c-clause-gang-dim
|
|
26
|
+
// primary atom: acc.clause.gang.dim
|
|
27
|
+
// legal: yes
|
|
28
|
+
// observable: yes
|
|
29
|
+
// ran_on_host: inside the compute region of interest (acc_on_device)
|
|
30
|
+
// evidence: equivalent_default
|
|
31
|
+
// needs: none
|
|
32
|
+
// std: c11
|
|
33
|
+
// oracle: without the loop construct every gang of the parallel region executes every iteration (gang-redundant mode), and the
|
|
34
|
+
// atomic update adds the value once per gang
|
|
35
|
+
// no oracle (equivalent_default): dimension one is the gang clause's dimension without dim
|
|
36
|
+
// basis: OpenACC 3.4 §2.9.2, p.66: "The associated dimension is the value of the dim argument, if it appears, or is dimension one."
|
|
37
|
+
// C: the atomic update is written x += expr; the port's x = x + e1 + e2 is also a legal 3.4 §2.12 form (mathematically equivalent
|
|
38
|
+
// to x + (e1 + e2)) and is kept as acc34-c-clause-gang-dim-binop
|
|
39
|
+
#include <stdio.h>
|
|
40
|
+
#include <stdbool.h>
|
|
41
|
+
#include <openacc.h>
|
|
42
|
+
|
|
43
|
+
enum { n = 64 };
|
|
44
|
+
|
|
45
|
+
int main(void) {
|
|
46
|
+
int a[n];
|
|
47
|
+
int b[n];
|
|
48
|
+
int ref[n];
|
|
49
|
+
int host_flag;
|
|
50
|
+
bool ok;
|
|
51
|
+
for (int i = 1; i <= n; i++) {
|
|
52
|
+
a[i - 1] = i;
|
|
53
|
+
b[i - 1] = 0;
|
|
54
|
+
ref[i - 1] = 2 * i + 1;
|
|
55
|
+
}
|
|
56
|
+
host_flag = 1;
|
|
57
|
+
#pragma acc parallel num_gangs(4) copyin(a) copy(b) copy(host_flag)
|
|
58
|
+
{
|
|
59
|
+
#pragma acc loop gang(dim: 1)
|
|
60
|
+
for (int i = 1; i <= n; i++) {
|
|
61
|
+
if (i == 1) host_flag = (acc_on_device(acc_device_host) ? 1 : 0);
|
|
62
|
+
#pragma acc atomic update
|
|
63
|
+
b[i - 1] += 2 * a[i - 1] + 1;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
bool t1_ = true;
|
|
67
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
68
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
69
|
+
ok = t1_;
|
|
70
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
// site:
|
|
74
|
+
// title: OpenACC 3.3 gang(dim:) is rejected (C)
|
|
75
|
+
// summary: GCC 16.2 rejects the dim argument of the gang clause in C ("'dim' undeclared"), an OpenACC 3.3 form; GCC documents
|
|
76
|
+
// + OpenACC 2.6. NVHPC compiles and runs the program. (The C collapse(force:) program is rejected by every compiler under test, so
|
|
77
|
+
// + it is not part of this finding.)
|
|
78
|
+
// same_as: gcc/gcc-acc-gang-dim-collapse-force-rejected
|
|
79
|
+
// end site
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// # Finding (GCC 16.2): a declare link variable used in an OpenACC routine is rejected (C); the reproducer is the catalog program
|
|
2
|
+
// acc34-c-clause-link
|
|
3
|
+
//
|
|
4
|
+
// - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
// NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
// - build: gcc -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90); -foffload=nvptx-none
|
|
7
|
+
// -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
// - failure: rejected: with .link. clause used in .routine. function
|
|
9
|
+
// - observed: `error: 'lv' with 'link' clause used in 'routine' function` on both GPUs.
|
|
10
|
+
// - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
11
|
+
// - spec: "The global variable or common block variables may be used in accelerator routines" (OpenACC 3.4 §2.13.3 l.3083-3084),
|
|
12
|
+
// for a variable in a declare link clause; the device copy exists while a data clause holds it (l.3079-3081), here the parallel
|
|
13
|
+
// loop's copyin(lv).
|
|
14
|
+
// - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
15
|
+
// found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
16
|
+
// is documented.
|
|
17
|
+
// - other families: NVHPC 25.11/26.9 compile it and give a wrong answer (not studied here).
|
|
18
|
+
// - gate and confirmer: 2 cells (1 gcc_g90, 1 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
19
|
+
// results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
20
|
+
// compiler_bug (R11-compile-rejection) 2
|
|
21
|
+
// - catalog programs (1): acc34-c-clause-link
|
|
22
|
+
// - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
23
|
+
// check every program against the catalog rules and the offload scope as it is built; no
|
|
24
|
+
// compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
25
|
+
// family's case (catalog/machines.yaml under_test_only).
|
|
26
|
+
// Generated by compliance.acc_c_gen (OpenACC 3.4, C11): the C port (offload.engine.f2c) of acc34-clause-link. Do not edit.
|
|
27
|
+
// id: acc34-c-clause-link
|
|
28
|
+
// primary atom: acc.clause.link
|
|
29
|
+
// legal: yes
|
|
30
|
+
// observable: yes
|
|
31
|
+
// ran_on_host: inside the compute region of interest (acc_on_device)
|
|
32
|
+
// evidence: construct
|
|
33
|
+
// needs: none
|
|
34
|
+
// std: c11
|
|
35
|
+
#include <stdio.h>
|
|
36
|
+
#include <stdbool.h>
|
|
37
|
+
#include <openacc.h>
|
|
38
|
+
|
|
39
|
+
enum { n = 64 };
|
|
40
|
+
int lv[64];
|
|
41
|
+
#pragma acc declare link(lv)
|
|
42
|
+
#pragma acc routine seq
|
|
43
|
+
int get_lv(int k) {
|
|
44
|
+
int r_;
|
|
45
|
+
r_ = lv[k - 1];
|
|
46
|
+
return r_;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
int main(void) {
|
|
50
|
+
int a[n];
|
|
51
|
+
int b[n];
|
|
52
|
+
int ref[n];
|
|
53
|
+
int host_flag;
|
|
54
|
+
bool ok;
|
|
55
|
+
for (int i = 1; i <= n; i++) {
|
|
56
|
+
a[i - 1] = i;
|
|
57
|
+
b[i - 1] = 0;
|
|
58
|
+
ref[i - 1] = 2 * i + 1;
|
|
59
|
+
}
|
|
60
|
+
host_flag = 1;
|
|
61
|
+
for (int i = 1; i <= n; i++) {
|
|
62
|
+
lv[i - 1] = 2 * i + 1;
|
|
63
|
+
}
|
|
64
|
+
#pragma acc parallel loop copyin(a) copyout(b) copy(host_flag) copyin(lv)
|
|
65
|
+
for (int i = 1; i <= n; i++) {
|
|
66
|
+
if (i == 1) host_flag = (acc_on_device(acc_device_host) ? 1 : 0);
|
|
67
|
+
b[i - 1] = get_lv(a[i - 1]);
|
|
68
|
+
}
|
|
69
|
+
bool t1_ = true;
|
|
70
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
71
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
72
|
+
ok = t1_;
|
|
73
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
// site:
|
|
77
|
+
// title: OpenACC: a declare link variable used in a routine is rejected (C)
|
|
78
|
+
// summary: A variable in a declare link clause may be used in an accelerator routine (OpenACC 3.4 §2.13.3). GCC 16.2 rejects a
|
|
79
|
+
// + routine seq procedure that reads such a variable: "'lv' with 'link' clause used in 'routine' function", in Fortran and C. CCE
|
|
80
|
+
// + compiles and runs the Fortran program.
|
|
81
|
+
// same_as: gcc/gcc-acc-link-in-routine-rejected
|
|
82
|
+
// end site
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
! # Finding (GCC 16.2): OpenACC exit data detach, then exit data delete: "attach count underflow"
|
|
2
|
+
!
|
|
3
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
4
|
+
! NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
5
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
6
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
7
|
+
! - failure: run_error: attach count underflow
|
|
8
|
+
! - observed: `libgomp: attach count underflow` and exit 1 at the exit data delete, in every run on both GPUs (this file: gcc_sm80
|
|
9
|
+
! and gcc_g90, 5 of 5 each with OMP_TARGET_OFFLOAD mandatory and 5 of 5 unset; results/gcc/<tc>/probes-findings.jsonl); the
|
|
10
|
+
! parallel loop before it ran on the device.
|
|
11
|
+
! - expected: `sum= 2144`, then `RESULT ran_on_host=0 check=pass`
|
|
12
|
+
! - rule: in OpenACC 2.6, the version GCC documents, the delete clause performs a detach action, and "If the current device is a
|
|
13
|
+
! shared memory device, or if var is not present on the device, or if the attachment counter for var for the pointer is zero, no
|
|
14
|
+
! action is taken. Otherwise, the attachment counter for the pointer var is decremented" (OpenACC 2.6, section 2.7.2 "Detach
|
|
15
|
+
! Action", margin lines 1115-1122; the same sentence in OpenACC 3.0, 3.2 and 3.3, the last at margin lines 1710-1711). After exit
|
|
16
|
+
! data detach the attachment counter is zero, so the delete leaves it alone. OpenACC 3.4 rewords the actions with the same intent:
|
|
17
|
+
! the delete clause performs a decrement counter action on the attachment counter (OpenACC 3.4 §2.7.12 l.2022-2025), "If the
|
|
18
|
+
! reference counter is already zero, its value is left unchanged" (§2.7.2 l.1733-1735), and a detach pointer action at a zero
|
|
19
|
+
! counter is defined (§2.7.2 l.1794-1796); the data clause errors (§2.7.3) name no attachment-counter error.
|
|
20
|
+
! - same-compiler control (correct: `sum= 2144`, 5 of 5 runs on each GPU): the same program without the exit data detach
|
|
21
|
+
! (controls/gcc-acc{,-c}-detach-control.{f90,c}).
|
|
22
|
+
! - other families: CCE 19/20/21 (Fortran, MI300A and MI250X) and NVHPC 25.11/26.9 (both languages, separate and managed memory) run
|
|
23
|
+
! the catalog programs acc34-clause-detach and acc34-c-clause-detach to the end (their check cannot see the detach: unobservable).
|
|
24
|
+
! The site's finding matrix runs this file on every compiler.
|
|
25
|
+
! - gate and confirmer: 2 cells (1 gcc_g90, 1 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
26
|
+
! results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
27
|
+
! needs_human (R22-expected-weak) 2
|
|
28
|
+
! - catalog programs (1): acc34-clause-detach
|
|
29
|
+
! - legality: read against the spec (the rule above); the catalog programs of the list are legal by construction
|
|
30
|
+
! (offload.engine.gen,
|
|
31
|
+
! c_gen and acc_gen; no compiler). GCC is a compiler under test only and never a legality witness.
|
|
32
|
+
program detach_then_delete
|
|
33
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
34
|
+
implicit none
|
|
35
|
+
integer, parameter :: n = 64
|
|
36
|
+
type :: holder
|
|
37
|
+
integer, allocatable :: v(:)
|
|
38
|
+
end type holder
|
|
39
|
+
type(holder) :: h
|
|
40
|
+
integer :: b(n)
|
|
41
|
+
integer :: i, host_flag
|
|
42
|
+
allocate(h%v(n))
|
|
43
|
+
h%v = 1
|
|
44
|
+
b = 0
|
|
45
|
+
host_flag = 1
|
|
46
|
+
!$acc enter data copyin(h)
|
|
47
|
+
!$acc enter data copyin(h%v)
|
|
48
|
+
!$acc parallel loop copyout(b) copy(host_flag) present(h)
|
|
49
|
+
do i = 1, n
|
|
50
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
51
|
+
b(i) = i + h%v(i)
|
|
52
|
+
end do
|
|
53
|
+
!$acc exit data detach(h%v)
|
|
54
|
+
!$acc exit data delete(h%v)
|
|
55
|
+
!$acc exit data delete(h)
|
|
56
|
+
print '(a,i0)', 'sum= ', sum(b)
|
|
57
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', sum(b) == 2144)
|
|
58
|
+
end program detach_then_delete
|
|
59
|
+
! site:
|
|
60
|
+
! title: OpenACC: exit data delete after exit data detach stops with "attach count underflow"
|
|
61
|
+
! summary: After exit data detach of an attached member pointer, exit data delete of its target should leave the attachment counter
|
|
62
|
+
! + at zero and free the data. GCC 16.2's libgomp stops the program instead with "attach count underflow" (exit 1), in Fortran and
|
|
63
|
+
! + C, on the MI250X and the A100; without the detach the same program runs correctly. OpenACC 2.6, the version GCC documents, says
|
|
64
|
+
! + a detach action at a zero attachment counter takes no action.
|
|
65
|
+
! control: gcc/controls/gcc-acc-detach-control.f90 the same program without the exit data detach
|
|
66
|
+
! end site
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
! # Finding (GCC 16.2): OpenACC 3.3 gang(dim:) and collapse(force:) are rejected (Fortran); the reproducer is the catalog program
|
|
2
|
+
! acc34-clause-collapse-force
|
|
3
|
+
!
|
|
4
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
! NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
7
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
! - failure: rejected
|
|
9
|
+
! - observed: `Error: Invalid expression after 'collapse(' at (1)` (gang(dim:): `Failed to match clause`), on both GPUs.
|
|
10
|
+
! - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
11
|
+
! - spec: the force modifier (OpenACC 3.4 §2.9.1 l.2340-2341: "If the force modifier does not appear, then the associated loops must
|
|
12
|
+
! be tightly nested"; added in 3.3: OpenACC 3.4's "Changes from Version 3.2 to 3.3", margin line 807, and OpenACC 3.3's own,
|
|
13
|
+
! margin line 787) and the dim argument of gang (§2.9.2 l.2371; added in 3.3, "Changes from Version 3.2 to 3.3", margin line 800).
|
|
14
|
+
! - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
15
|
+
! found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
16
|
+
! is documented.
|
|
17
|
+
! - other families: CCE 21 and NVHPC 25.11/26.9 compile and run the collapse(force:) program (CCE 19/20 reject it); every compiler
|
|
18
|
+
! under test fails the Fortran gang(dim:) program.
|
|
19
|
+
! - gate and confirmer: 4 cells (2 gcc_g90, 2 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
20
|
+
! results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
21
|
+
! compiler_bug (R11-compile-rejection) 2, needs_human (R12b-compile-undecided) 2
|
|
22
|
+
! - catalog programs (2): acc34-clause-collapse-force, acc34-clause-gang-dim
|
|
23
|
+
! - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
24
|
+
! check every program against the catalog rules and the offload scope as it is built; no
|
|
25
|
+
! compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
26
|
+
! family's case (catalog/machines.yaml under_test_only).
|
|
27
|
+
! Generated by compliance.gen (OpenACC 3.4, free-form Fortran). Do not edit.
|
|
28
|
+
! id: acc34-clause-collapse-force
|
|
29
|
+
! primary atom: acc.clause.collapse.force
|
|
30
|
+
! legal: yes
|
|
31
|
+
! observable: yes
|
|
32
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
33
|
+
! evidence: unverified
|
|
34
|
+
! needs: none
|
|
35
|
+
! std: f2008
|
|
36
|
+
! unverified (needs_other_infrastructure): collapse(force: 2) decides which gang, worker or vector lane runs an iteration; no
|
|
37
|
+
! OpenACC routine reports it (the result of a correct loop is the same under every schedule)
|
|
38
|
+
program gen_prog
|
|
39
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
40
|
+
implicit none
|
|
41
|
+
integer, parameter :: n = 64
|
|
42
|
+
integer, allocatable, target :: a(:), b(:)
|
|
43
|
+
integer :: ref(n)
|
|
44
|
+
integer :: i, host_flag
|
|
45
|
+
logical :: ok
|
|
46
|
+
integer :: j, k
|
|
47
|
+
allocate(a(n), b(n))
|
|
48
|
+
do i = 1, n
|
|
49
|
+
a(i) = i
|
|
50
|
+
b(i) = 0
|
|
51
|
+
ref(i) = 2*i + 1
|
|
52
|
+
end do
|
|
53
|
+
host_flag = 1
|
|
54
|
+
!$acc parallel loop copyin(a) copyout(b) copy(host_flag) collapse(force: 2)
|
|
55
|
+
do j = 1, 8
|
|
56
|
+
do k = 1, 8
|
|
57
|
+
if (j == 1 .and. k == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
58
|
+
b((j - 1)*8 + k) = 2*a((j - 1)*8 + k) + 1
|
|
59
|
+
end do
|
|
60
|
+
end do
|
|
61
|
+
ok = all(b == ref)
|
|
62
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
63
|
+
deallocate(a, b)
|
|
64
|
+
end program gen_prog
|
|
65
|
+
! site:
|
|
66
|
+
! title: OpenACC 3.3 gang(dim:) and collapse(force:) are rejected (newer than GCC's OpenACC 2.6)
|
|
67
|
+
! summary: GCC 16.2 rejects two OpenACC 3.3 loop forms: the dim argument of the gang clause and the force modifier of collapse. GCC
|
|
68
|
+
! + documents OpenACC 2.6, so both are newer than its claim.
|
|
69
|
+
! end site
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
! # Finding (GCC 16.2): gfortran does not accept the OpenACC init, set and shutdown directives; the reproducer is the catalog
|
|
2
|
+
! program acc34-directive-init
|
|
3
|
+
!
|
|
4
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0,
|
|
5
|
+
! NVIDIA A100 sm_80, wingtip); separate memory only; -O2; OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
7
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
! - failure: rejected: Unclassifiable OpenACC directive
|
|
9
|
+
! - observed: `Error: Unclassifiable OpenACC directive at (1)` at `!$acc init` (also `!$acc set`, `!$acc shutdown`, and set's
|
|
10
|
+
! default_async and device_num clauses), on both GPUs. The C programs of the same directives compile.
|
|
11
|
+
! - expected: compiles; `RESULT ran_on_host=0 check=pass`
|
|
12
|
+
! - spec: the init directive (OpenACC 3.4 §2.14.1 l.3089-3100), "In Fortran the syntax of the init directive is: !$acc init
|
|
13
|
+
! [clause-list]"; the shutdown directive (§2.14.2) and the set directive (§2.14.3). They were added in OpenACC 2.5 (the
|
|
14
|
+
! specification's "Changes from Version 2.0 to 2.5", margin lines 590-591).
|
|
15
|
+
! - GCC 16.2 documentation (libgomp.texi "Enabling OpenACC"): "A complete description of all OpenACC directives accepted may be
|
|
16
|
+
! found in the OpenACC Application Programming Interface manual, version 2.6"; _OPENACC is 201711 (2.6). No list of OpenACC gaps
|
|
17
|
+
! is documented.
|
|
18
|
+
! - other families: NVHPC 25.11/26.9 compile and run the programs (separate and managed memory); CCE 19/20/21 compile them and abort
|
|
19
|
+
! at run time (cce-acc-init-set-runtime-assert.f90).
|
|
20
|
+
! - gate and confirmer: 10 cells (5 gcc_g90, 5 gcc_sm80), each confirmed in the gate's four environments (a-d;
|
|
21
|
+
! results/gcc/gate-tioga/ and gate-wingtip/ verdicts.jsonl); confirmer verdicts (results/gcc/confirm/batch.gcc_*.jsonl):
|
|
22
|
+
! compiler_bug (R11-compile-rejection) 10
|
|
23
|
+
! - catalog programs (5): acc34-clause-default_async, acc34-clause-device_num, acc34-directive-init, acc34-directive-set,
|
|
24
|
+
! acc34-directive-shutdown
|
|
25
|
+
! - legality: the catalog programs are legal by construction (offload.engine.gen, c_gen and acc_gen
|
|
26
|
+
! check every program against the catalog rules and the offload scope as it is built; no
|
|
27
|
+
! compiler). GCC is a compiler under test only: never a legality witness, here or for another
|
|
28
|
+
! family's case (catalog/machines.yaml under_test_only).
|
|
29
|
+
! Generated by compliance.gen (OpenACC 3.4, free-form Fortran). Do not edit.
|
|
30
|
+
! id: acc34-directive-init
|
|
31
|
+
! primary atom: acc.directive.init
|
|
32
|
+
! legal: yes
|
|
33
|
+
! observable: no (unverified: the check covers the device kernel, not the atom)
|
|
34
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
35
|
+
! evidence: unverified
|
|
36
|
+
! needs: none
|
|
37
|
+
! std: f2008
|
|
38
|
+
! unverified (needs_other_infrastructure): initialisation is observable only as timing or through the profiling interface (3.4
|
|
39
|
+
! chapter 5); the runtime initialises on first use anyway
|
|
40
|
+
program gen_prog
|
|
41
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
42
|
+
implicit none
|
|
43
|
+
integer, parameter :: n = 64
|
|
44
|
+
integer, allocatable, target :: a(:), b(:)
|
|
45
|
+
integer :: ref(n)
|
|
46
|
+
integer :: i, host_flag
|
|
47
|
+
logical :: ok
|
|
48
|
+
allocate(a(n), b(n))
|
|
49
|
+
do i = 1, n
|
|
50
|
+
a(i) = i
|
|
51
|
+
b(i) = 0
|
|
52
|
+
ref(i) = 2*i + 1
|
|
53
|
+
end do
|
|
54
|
+
host_flag = 1
|
|
55
|
+
!$acc init
|
|
56
|
+
!$acc parallel loop copyin(a) copyout(b) copy(host_flag)
|
|
57
|
+
do i = 1, n
|
|
58
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
59
|
+
b(i) = 2*a(i) + 1
|
|
60
|
+
end do
|
|
61
|
+
ok = all(b == ref)
|
|
62
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
63
|
+
deallocate(a, b)
|
|
64
|
+
end program gen_prog
|
|
65
|
+
! site:
|
|
66
|
+
! title: gfortran: OpenACC init, set and shutdown directives are not accepted ("Unclassifiable OpenACC directive")
|
|
67
|
+
! summary: GCC 16.2's Fortran front end does not parse the OpenACC init, set and shutdown directives ("Unclassifiable OpenACC
|
|
68
|
+
! + directive"); the C front end accepts them. These directives are part of OpenACC 2.5, and GCC documents OpenACC 2.6. NVHPC
|
|
69
|
+
! + compiles and runs the programs.
|
|
70
|
+
! end site
|