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,37 @@
|
|
|
1
|
+
// An error directive with at(compilation) severity(warning) in a
|
|
2
|
+
// target region (OpenMP 6.0 §10.1: at(compilation) acts at compile time
|
|
3
|
+
// only; a warning lets the compilation go on). Expected: the warning, a
|
|
4
|
+
// successful build, "RESULT ... check=pass".
|
|
5
|
+
// Observed (AFAR amdclang 24.0.0git, -fopenmp --offload-arch=gfx942
|
|
6
|
+
// -fopenmp-version=60 -O2, 2026-10-21): the warning is printed twice (host
|
|
7
|
+
// and device pass), then the device link fails: "ld.lld: error: undefined
|
|
8
|
+
// symbol: __kmpc_error >>> referenced by ...img.lto.o:(__omp_offloading_..
|
|
9
|
+
// _main_l..)": the device code calls the runtime error routine, which the
|
|
10
|
+
// device runtime lacks (amdclang lowers at(compilation) to a run-time
|
|
11
|
+
// call: placed in the host part of main the program builds, and its run
|
|
12
|
+
// prints "OMP: Warning #290: ... Encountered user-directed warning: probe",
|
|
13
|
+
// which at(compilation) should not). The Fortran form (amdflang) builds and
|
|
14
|
+
// runs; CCE craycc 19, 20, 21 build and run both placements. Makes the C message, severity and
|
|
15
|
+
// severity.warning programs (6.0) a link failure on AFAR.
|
|
16
|
+
#include <stdio.h>
|
|
17
|
+
#include <omp.h>
|
|
18
|
+
|
|
19
|
+
int main(void) {
|
|
20
|
+
int b[64];
|
|
21
|
+
int host_flag = 1;
|
|
22
|
+
#pragma omp target map(from: b) map(tofrom: host_flag)
|
|
23
|
+
{
|
|
24
|
+
#pragma omp error at(compilation) severity(warning) message("probe")
|
|
25
|
+
host_flag = omp_is_initial_device();
|
|
26
|
+
for (int i = 0; i < 64; i++) b[i] = 2 * i + 1;
|
|
27
|
+
}
|
|
28
|
+
int ok = 1;
|
|
29
|
+
for (int i = 0; i < 64; i++) ok = ok && b[i] == 2 * i + 1;
|
|
30
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
// site:
|
|
34
|
+
// title: amdclang -fopenmp-version=60: error at(compilation) severity(warning) in a target region fails at the device link
|
|
35
|
+
// + (__kmpc_error undefined)
|
|
36
|
+
// control: ../vendor/checks/src/afar/control/afar-c-error-directive-in-target-link-control.c the error directive removed
|
|
37
|
+
// end site
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/* # Finding (lead 2): AFAR amdclang returns 0 or a garbage value for a lastprivate item
|
|
2
|
+
# of fewer than 8 bytes on target teams distribute parallel for (C)
|
|
3
|
+
|
|
4
|
+
- compiler: AFAR amdclang 24.0.0git (drop 24.3.0), -fopenmp --offload-arch=gfx942 (MI300A,
|
|
5
|
+
HSA_XNACK 1 and 0) and gfx90a (MI250X, Tioga, XNACK 0), -fopenmp-version=52, -O2 and -O0
|
|
6
|
+
- expected: lp= 192 dev= 1. lastprivate gives the original lp the value of the sequentially
|
|
7
|
+
last iteration (i = 64: 3 * 64): "the value of each new list item from the sequentially last
|
|
8
|
+
iteration of the associated loops ... is assigned to the original list item" (5.2 §5.4.5
|
|
9
|
+
p.115 l.12-16); on the combined construct it applies to the distribute and for leaves (5.2
|
|
10
|
+
§17.2 p.340 l.21-22) and map(tofrom: lp) on the target leaf brings the value to the host.
|
|
11
|
+
- actual: MI300A (XNACK 1 and 0, -O2 and -O0): lp= 0 or a value that varies from run to run
|
|
12
|
+
(-1191462675, 948123843, 16246, ...; the trial saw 104571, 82972, 165175, 151912, 17038;
|
|
13
|
+
the review's 12 runs all printed 0);
|
|
14
|
+
MI250X: lp= 0 in every run. The same with short (14674, -18864, ...) and float (-1.1e-05, ...);
|
|
15
|
+
with target followed by teams distribute parallel for lastprivate(lp) inside it.
|
|
16
|
+
- same-compiler controls (each one change): long long lp or double lp gives 192 in every run
|
|
17
|
+
on both GPUs; target teams distribute lastprivate(lp) map(tofrom: lp) with the int gives 192;
|
|
18
|
+
target parallel for lastprivate(lp) map(tofrom: lp) with the int gives 192.
|
|
19
|
+
- no other family can witness: CCE craycc 19/20/21 give lp= -1 (the original unchanged) with
|
|
20
|
+
int and long long alike, their lastprivate defect on a for inside a target region
|
|
21
|
+
(cce-c-parallel-for-in-target.c); NVIDIA's guide documents lastprivate on distribute as
|
|
22
|
+
unsupported (HPC Compilers User's Guide 25.11, §7.4, 2.9.4), so nvc is no witness; AFAR
|
|
23
|
+
amdflang stops at "not yet implemented: lastprivate clause in constructs other than
|
|
24
|
+
simd/worksharing-loop/taskloop" on the Fortran form. The expected value rests on the spec
|
|
25
|
+
text and AFAR's own 8-byte and single-leaf controls.
|
|
26
|
+
- relation: stress/afar-c-lastprivate-combined-target-not-mapped.c is the missing implicit map
|
|
27
|
+
(no map clause: lp stays -1 with int and long long alike); this is a second defect, which is
|
|
28
|
+
why that finding's explicit-map control passes only with its long long item .
|
|
29
|
+
- legality: offload.engine.rules accepts it (with the race rule and the restriction checks:
|
|
30
|
+
offload.engine.prerun.check, rerun, data/evidence/lead_probe/logs/legality_new.jsonl), and nvc
|
|
31
|
+
26.9 and 25.11 (NVHPC, not under test for an AFAR finding) compile it with -mp=gpu
|
|
32
|
+
(data/evidence/lead_probe/logs/wingtip_witness.log); the check's other witness, the amdclang front
|
|
33
|
+
end, is AFAR's own and is not counted; no gfortran or gcc is a legality witness.
|
|
34
|
+
Race-free: lp is lastprivate; every iteration writes only its own copy.
|
|
35
|
+
- evidence: data/evidence/lead_probe/leads/ (lp_*.c), runs in data/evidence/lead_probe/logs/leads_*.jsonl;
|
|
36
|
+
reproduction (the gate's four environments by hand, as for
|
|
37
|
+
afar-c-teams-distribute-reduction-first-team.c): MI300A, XNACK 1 and 0, wrong in every run of
|
|
38
|
+
(a), (b), (c) and (d), but the value differs between runs (0, 16246, 337455926, -1176291223,
|
|
39
|
+
...: the gate reads such a row as nondeterministic); MI250X (tioga39), (a), (b), (d): lp= 0 in
|
|
40
|
+
every run (confirmed). The long long control gave 192 in every environment. */
|
|
41
|
+
#include <stdio.h>
|
|
42
|
+
#include <omp.h>
|
|
43
|
+
int main(void) {
|
|
44
|
+
int lp = -1;
|
|
45
|
+
int dev = -1;
|
|
46
|
+
#pragma omp target teams distribute parallel for lastprivate(lp) map(tofrom: lp)
|
|
47
|
+
for (int i = 1; i <= 64; i++)
|
|
48
|
+
lp = 3 * i;
|
|
49
|
+
#pragma omp target map(tofrom: dev)
|
|
50
|
+
dev = omp_is_initial_device() ? 0 : 1;
|
|
51
|
+
printf("lp= %d dev= %d\n", lp, dev);
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
// site:
|
|
55
|
+
// title: A lastprivate item smaller than 8 bytes on target teams distribute parallel for comes back as 0 or a garbage value
|
|
56
|
+
// end site
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/* # Finding (lead 1): AFAR amdclang keeps only the first team's partial result of a
|
|
2
|
+
# reduction on target teams distribute (C, -O1 and above)
|
|
3
|
+
|
|
4
|
+
- compiler: AFAR amdclang 24.0.0git (drop 24.3.0), -fopenmp --offload-arch=gfx942 (MI300A,
|
|
5
|
+
HSA_XNACK 1 and 0) and gfx90a (MI250X, Tioga, XNACK 0), -fopenmp-version=52, -O2
|
|
6
|
+
- expected: l= 83200 dev= 1 (the sum of 40 * i over i = 1..64). The reduction clause applies to
|
|
7
|
+
the teams leaf (5.2 §17.2 p.340 l.36-37, §5.5.8 p.134 l.18: distribute takes no reduction),
|
|
8
|
+
"For each list item, a private copy is created for each implicit task or SIMD lane and is
|
|
9
|
+
initialized with the initializer value of the reduction-identifier. After the end of the
|
|
10
|
+
region, the original list item is updated with the values of the private copies using the
|
|
11
|
+
combiner associated with the reduction-identifier" (5.2 §5.5.8 p.134 l.21-24)
|
|
12
|
+
- actual: l= 40 dev= 1: the region ran on the device and the original got only the first
|
|
13
|
+
team's partial sum (team 0 ran iteration 1). Every run at -O1, -O2 and -O3, MI300A at XNACK 1
|
|
14
|
+
and 0 and MI250X; with 1000 iterations l= 61600 (team 0's chunk) instead of 20020000. The
|
|
15
|
+
same with reduction(max: l) and the body l = max(l, i * 40) (l= 40, expected 2560; this is the
|
|
16
|
+
control of the HPE packet's cce-c-distribute-lastprivate-lost report that AFAR failed,
|
|
17
|
+
data/vendor/errata-for-findings.md item 23), with reduction(min: l) (l= 0, expected 40), with
|
|
18
|
+
double and int items, with num_teams(64), with target followed by teams distribute, and with
|
|
19
|
+
target teams reduction(+: l) around a distribute.
|
|
20
|
+
- same-compiler controls (each one change): the same file at -O0 gives l= 83200;
|
|
21
|
+
num_teams(8) or num_teams(4) or num_teams(1) gives 83200 (2560 for the max form);
|
|
22
|
+
target teams distribute parallel for reduction(max: l) gives 2560; AFAR amdflang's
|
|
23
|
+
target teams distribute reduction(max: l) over the same loop gives 2560.
|
|
24
|
+
- other families: CCE craycc 19.0.0, 20.0.2, 21.0.3 and 21.0.4 give l= 83200 on this file (and
|
|
25
|
+
2560, 20020000 on the max and 1000-iteration forms).
|
|
26
|
+
- legality: offload.engine.rules accepts it (with the race rule and the restriction checks:
|
|
27
|
+
offload.engine.prerun.check, rerun, data/evidence/lead_probe/logs/legality_new.jsonl), and nvc
|
|
28
|
+
26.9 and 25.11 (NVHPC, not under test for an AFAR finding) compile it with -mp=gpu
|
|
29
|
+
(data/evidence/lead_probe/logs/wingtip_witness.log); the check's other witness, the amdclang front
|
|
30
|
+
end, is AFAR's own and is not counted; no gfortran or gcc is a legality witness.
|
|
31
|
+
Race-free: each team updates only its private copy of l.
|
|
32
|
+
- evidence: data/evidence/lead_probe/leads/ (red_*.c, red3_*.c; jobs.py, run_leads.sh), runs in
|
|
33
|
+
data/evidence/lead_probe/logs/leads_*.jsonl
|
|
34
|
+
- reproduction (the gate's four environments by hand: data/evidence/lead_probe/confirm_jobs.py,
|
|
35
|
+
run_confirm.sh; logs/confirm_*.jsonl): MI300A, XNACK 1 and 0, (a) harness_<8 hex> and (d) a
|
|
36
|
+
second run there and (b) GATE + 14 letters on tuolumne1047, (c) the path of (a) on
|
|
37
|
+
tuolumne1042: l= 40 in every run (confirmed); MI250X (tioga39), (a), (b), (d): l= 40. The -O0
|
|
38
|
+
and num_teams(8) controls gave 83200 in every environment; CCE 19/20/21/21.0.4 gave 83200.
|
|
39
|
+
- upstream: llvm-project fixed it in 2c1650555b10 "[OpenMP][offload] Fix
|
|
40
|
+
single-thread SPMD cross-team reductions (#231843)" (2026-10-14, after the AFAR drop), with the
|
|
41
|
+
test offload/test/offloading/xteam_reduction_no_parallel.c; AFAR fails that test (gfx942 at
|
|
42
|
+
XNACK 0 and 1, gfx90a; gate confirmed), CCE 19/20/21 and NVHPC 25.11/26.9 pass it
|
|
43
|
+
. */
|
|
44
|
+
#include <stdio.h>
|
|
45
|
+
#include <omp.h>
|
|
46
|
+
int main(void) {
|
|
47
|
+
long long l = 0;
|
|
48
|
+
int dev = -1;
|
|
49
|
+
#pragma omp target teams distribute reduction(+: l) map(tofrom: l)
|
|
50
|
+
for (int i = 1; i <= 64; i++)
|
|
51
|
+
l += (long long) i * 40;
|
|
52
|
+
#pragma omp target map(tofrom: dev)
|
|
53
|
+
dev = omp_is_initial_device() ? 0 : 1;
|
|
54
|
+
printf("l= %lld dev= %d\n", l, dev);
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
// site:
|
|
58
|
+
// title: amdclang keeps only the first team's partial result of a reduction on target teams distribute
|
|
59
|
+
// end site
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// (copy mode for the whole catalog): AFAR amdclang moves no data
|
|
2
|
+
// for a target update motion clause with an iterator modifier, at
|
|
3
|
+
// HSA_XNACK=0 (separate host and device memory).
|
|
4
|
+
// The iterator k = 0:1 has the one value 0 (5.2 §3.2.6 p.67: i0 = begin,
|
|
5
|
+
// i0 < end), so to(iterator(k = 0:1): a[k:n - k]) is to(a[0:n]): the
|
|
6
|
+
// target update makes the device copy of a consistent with the host
|
|
7
|
+
// (5.2 §13.9 p.289). Expected: to iterator: bad= 0 (from_iter: the same
|
|
8
|
+
// with from(iterator(k = 0:1): b[k:n - k]) after a device write).
|
|
9
|
+
// Observed (tuolumne, MI300A, 2026-10-22, 3 runs each, -O2,
|
|
10
|
+
// OMP_TARGET_OFFLOAD=mandatory):
|
|
11
|
+
// - AFAR amdclang 24.0.0git at HSA_XNACK=0: to iterator: bad= 64 (and
|
|
12
|
+
// from iterator: bad= 64): nothing is copied; the same update without
|
|
13
|
+
// the iterator, to(a[0:n]), gives bad= 0. Correct at HSA_XNACK=1 (one
|
|
14
|
+
// copy of the data).
|
|
15
|
+
// - CCE craycc 19, 20, 21: reject the iterator modifier of to/from (the
|
|
16
|
+
// catalog's to.iterator and from.iterator C programs: "call to
|
|
17
|
+
// undeclared function").
|
|
18
|
+
// The catalog's C to.iterator and from.iterator programs (5.2, 6.0) fail
|
|
19
|
+
// on AFAR at HSA_XNACK=0 because of it, and so does the C map.iterator
|
|
20
|
+
// program: target enter data map(iterator(k = 1:2), to: w[k:n / 2 - k])
|
|
21
|
+
// (one value, the section w[1:31]) leaves w[1] not present in copy mode. AFAR amdflang rejects the Fortran
|
|
22
|
+
// form ("not yet implemented").
|
|
23
|
+
// AFAR: amdclang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
|
|
24
|
+
// Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=0 ./a.out
|
|
25
|
+
#include <stdio.h>
|
|
26
|
+
enum { n = 64 };
|
|
27
|
+
int main(void) {
|
|
28
|
+
int a[n], b[n], k, bad = 0;
|
|
29
|
+
for (int i = 0; i < n; i++) { a[i] = i; b[i] = 0; }
|
|
30
|
+
#pragma omp target enter data map(to: a) map(alloc: b)
|
|
31
|
+
for (int i = 0; i < n; i++) a[i] += 10;
|
|
32
|
+
#pragma omp target update to(iterator(k = 0:1): a[k:n - k])
|
|
33
|
+
#pragma omp target map(alloc: a, b)
|
|
34
|
+
for (int i = 0; i < n; i++) b[i] = a[i];
|
|
35
|
+
#pragma omp target update from(b)
|
|
36
|
+
#pragma omp target exit data map(release: a, b)
|
|
37
|
+
for (int i = 0; i < n; i++) bad += b[i] != i + 10;
|
|
38
|
+
printf("to iterator: bad= %d\n", bad);
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
// site:
|
|
42
|
+
// title: amdclang at HSA_XNACK=0: target update with an iterator modifier moves no data
|
|
43
|
+
// control: ../vendor/checks/src/afar/control/afar-c-update-iterator-copy-mode-control.c to(a[0:n]) instead of to(iterator(k = 0:1):
|
|
44
|
+
// + a[k:n - k])
|
|
45
|
+
// end site
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// The C form of afar-xnack1-target-is-present.f90.
|
|
2
|
+
// After target enter data map(to: a), omp_target_is_present must return
|
|
3
|
+
// true (5.2 §18.8.3 p.389; the enter data creates a corresponding storage
|
|
4
|
+
// block, which may share storage with the original, 5.2 §5.8.3 p.153).
|
|
5
|
+
// Expected: after enter data: present= 1, after exit data: present= 0
|
|
6
|
+
// Observed (tuolumne, MI300A, 2026-10-22, 3 runs each, -O2,
|
|
7
|
+
// OMP_TARGET_OFFLOAD=mandatory):
|
|
8
|
+
// - AFAR amdclang 24.0.0git at HSA_XNACK=1: present= 0 after enter data;
|
|
9
|
+
// at HSA_XNACK=0: present= 1.
|
|
10
|
+
// - CCE craycc 19.0.0: present= 1 / 0 in both modes.
|
|
11
|
+
// AFAR: amdclang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
|
|
12
|
+
// CCE: craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
|
|
13
|
+
// -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -fopenmp-version=52 -O2
|
|
14
|
+
// Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=1 ./a.out
|
|
15
|
+
#include <stdio.h>
|
|
16
|
+
#include <omp.h>
|
|
17
|
+
int main(void) {
|
|
18
|
+
int a[64], d = omp_get_default_device();
|
|
19
|
+
for (int i = 0; i < 64; i++) a[i] = 1;
|
|
20
|
+
#pragma omp target enter data map(to: a)
|
|
21
|
+
printf("after enter data: present= %d\n", omp_target_is_present(a, d));
|
|
22
|
+
#pragma omp target exit data map(release: a)
|
|
23
|
+
printf("after exit data: present= %d\n", omp_target_is_present(a, d));
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
// site:
|
|
27
|
+
// title: AFAR offload runtime at HSA_XNACK=1: omp_target_is_present returns false after target enter data, and map(present) of an
|
|
28
|
+
// + absent item does not terminate
|
|
29
|
+
// control: ../vendor/checks/src/afar/control/afar-c-xnack1-target-is-present-control.c run at HSA_XNACK=0
|
|
30
|
+
// same_as: afar-xnack1-target-is-present
|
|
31
|
+
// end site
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
character :: ch
|
|
4
|
+
character(len=4) :: s
|
|
5
|
+
integer :: k
|
|
6
|
+
ch = 'a'; s = 'abcd'; k = 1
|
|
7
|
+
!$omp target
|
|
8
|
+
ch = 'b'; s = 'wxyz'; k = 2
|
|
9
|
+
!$omp end target
|
|
10
|
+
print '(a,a,a,a,a,i0)', 'ch=', ch, ' s=', s, ' k=', k
|
|
11
|
+
end program
|
|
12
|
+
! site:
|
|
13
|
+
! title: amdflang: a Fortran character scalar referenced in a target region is treated as a firstprivate scalar (writes lost)
|
|
14
|
+
! control: ../vendor/checks/src/afar/control/afar-cce19-character-defaultmap-control.f90 ch and s mapped explicitly: map(tofrom:
|
|
15
|
+
! + ch, s)
|
|
16
|
+
! end site
|
|
17
|
+
! spec (requirement): In Fortran a character variable is not a scalar variable for OpenMP: the scalar variable
|
|
18
|
+
! definition excludes the character type.
|
|
19
|
+
! "For Fortran, a scalar variable with intrinsic type, as defined by the base language, excluding character type."
|
|
20
|
+
! (5.2 §1.2.6 p.14 l.7-8)
|
|
21
|
+
! spec (requirement): A variable referenced in a target construct that is not a scalar is implicitly mapped with
|
|
22
|
+
! map-type tofrom, so a character variable is mapped and its modification is visible after the region.
|
|
23
|
+
! "If a variable is not a scalar then it is treated as if it had appeared in a map clause with a map-type of tofrom."
|
|
24
|
+
! (5.2 §5.8.1 p.149 l.4-5)
|
|
25
|
+
! spec (this program): ch and s are character variables referenced in the target region with no map or defaultmap
|
|
26
|
+
! clause, so both are implicitly mapped tofrom and come back as b and wxyz; amdflang treats them as firstprivate
|
|
27
|
+
! scalars and the writes are lost (k, an integer scalar, is firstprivate and keeps its value).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
program t
|
|
2
|
+
implicit none
|
|
3
|
+
integer :: c, r
|
|
4
|
+
r = 0
|
|
5
|
+
!$omp target map(from: r)
|
|
6
|
+
c = 7
|
|
7
|
+
!$omp task default(shared)
|
|
8
|
+
c = 42
|
|
9
|
+
!$omp end task
|
|
10
|
+
!$omp taskwait
|
|
11
|
+
r = c
|
|
12
|
+
!$omp end target
|
|
13
|
+
print *, 'r=', r
|
|
14
|
+
end program
|
|
15
|
+
! site:
|
|
16
|
+
! title: ftn/craycc: constructs documented as unsupported in offload regions (single, masked, task, ordered, scan) give internal
|
|
17
|
+
! + compiler errors or device link failures instead of a diagnostic
|
|
18
|
+
! control: ../vendor/checks/src/afar/control/afar-cce19-task-in-target-ice-control.f90 the task and taskwait constructs removed
|
|
19
|
+
! + (the task
|
|
20
|
+
! + body
|
|
21
|
+
! + kept)
|
|
22
|
+
! same_as: cce19-target-parallel-single-ice
|
|
23
|
+
! end site
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* Finding (C): AFAR amdclang hangs on requires device_safesync.
|
|
2
|
+
|
|
3
|
+
Legal OpenMP 6.0 C (6.0 §10.5.1.7: device_safesync is a requires
|
|
4
|
+
clause; without an argument it means device_safesync(true)).
|
|
5
|
+
|
|
6
|
+
Observed (2026-10-19): amdclang (AFAR 24.0.0git, drop 24.3.0) does not
|
|
7
|
+
finish on this file: killed after 90 s with
|
|
8
|
+
`-fopenmp -fopenmp-version=60 --offload-arch=gfx942 -c`, after 300 s
|
|
9
|
+
with `-fopenmp -fopenmp-version=60 -fsyntax-only`, and after 30 s with
|
|
10
|
+
`-fopenmp-version=52 -fsyntax-only` (where the clause is unknown and
|
|
11
|
+
should be diagnosed). The omp60-c-clause-device_safesync programs time
|
|
12
|
+
out in compilation. CCE craycc 19.0.0, 20.0.2 and 21.0.3 stop at once:
|
|
13
|
+
"warning: extra tokens at the end of '#pragma omp requires' are
|
|
14
|
+
ignored" and "error: expected at least one clause on '#pragma omp
|
|
15
|
+
requires' directive" (the clause is unknown to them). AFAR amdflang
|
|
16
|
+
compiles and runs the Fortran form (`!$omp requires device_safesync`;
|
|
17
|
+
omp60-clause-device_safesync: unobservable). */
|
|
18
|
+
#pragma omp requires device_safesync
|
|
19
|
+
int main(void) { return 0; }
|
|
20
|
+
// site:
|
|
21
|
+
// title: amdclang -fopenmp-version=60: compile does not finish on #pragma omp requires device_safesync
|
|
22
|
+
// control: ../vendor/checks/src/afar/control/afar-clang-requires-device-safesync-hang-control.c another requires clause,
|
|
23
|
+
// + atomic_default_mem_order(seq_cst)
|
|
24
|
+
// end site
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
integer :: a(10), i, p1
|
|
4
|
+
p1 = 3
|
|
5
|
+
!$omp target firstprivate(p1) map(from: a)
|
|
6
|
+
do i = 1, 10
|
|
7
|
+
a(i) = p1
|
|
8
|
+
end do
|
|
9
|
+
!$omp end target
|
|
10
|
+
!$omp target map(to: p1) map(tofrom: a)
|
|
11
|
+
do i = 1, 10
|
|
12
|
+
a(i) = a(i) + p1
|
|
13
|
+
end do
|
|
14
|
+
!$omp end target
|
|
15
|
+
print *, 'a(3) =', a(3)
|
|
16
|
+
end program p
|
|
17
|
+
! site:
|
|
18
|
+
! title: amdflang: firstprivate(p1) on one target and map(to: p1) on a later target rejected as if on the same construct
|
|
19
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-firstprivate-map-two-targets-control.f90 map(to: p1) instead of
|
|
20
|
+
! + firstprivate(p1)
|
|
21
|
+
! + on the
|
|
22
|
+
! + first target
|
|
23
|
+
! end site
|
|
24
|
+
! spec (requirement): The data environment of each target task is created from the data-sharing and data-mapping
|
|
25
|
+
! clauses on that one target construct, so clauses on different target constructs do not interact.
|
|
26
|
+
! "The data environment of the target task is created according to the data-sharing and data-mapping attribute clauses
|
|
27
|
+
! on the target construct" (5.2 §13.8 p.284 l.19-21)
|
|
28
|
+
! spec (requirement): A firstprivate list item on a target construct is initialized from the original list item that
|
|
29
|
+
! exists before that construct.
|
|
30
|
+
! "In addition, the new list item is initialized from the original list item that exists before the construct." (5.2
|
|
31
|
+
! §5.4.4 p.112 l.11-12)
|
|
32
|
+
! spec (this program): p1 is firstprivate on the first target construct and appears in map(to:) only on the second,
|
|
33
|
+
! separate target construct, so no list item has two attributes on one construct; amdflang rejects the second target
|
|
34
|
+
! as if both clauses were on the same construct.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
integer :: r, i
|
|
4
|
+
r = 0
|
|
5
|
+
!$omp target teams map(tofrom: r)
|
|
6
|
+
!$omp loop bind(teams) reduction(+: r)
|
|
7
|
+
do i = 1, 10
|
|
8
|
+
r = r + i
|
|
9
|
+
end do
|
|
10
|
+
!$omp end target teams
|
|
11
|
+
print *, 'r =', r
|
|
12
|
+
end program p
|
|
13
|
+
! site:
|
|
14
|
+
! title: amdflang: reduction on loop bind(teams) nested in a target teams region rejected
|
|
15
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-loop-bind-teams-reduction-control.f90 bind(teams) removed (the loop binds
|
|
16
|
+
! + to the
|
|
17
|
+
! + teams
|
|
18
|
+
! + region by default)
|
|
19
|
+
! end site
|
|
20
|
+
! spec (requirement): The reduction clause is permitted on the loop construct.
|
|
21
|
+
! "bind, collapse, lastprivate, order, private, reduction" (5.2 §11.7 p.257 l.4)
|
|
22
|
+
! spec (requirement): The behavior of a reduction clause on a loop with bind(teams) is unspecified only when the loop
|
|
23
|
+
! is not nested inside a teams construct (and executes on a non-host device); nested inside teams it is specified.
|
|
24
|
+
! "then the behavior of a reduction clause that appears on the corresponding loop construct is unspecified if the
|
|
25
|
+
! construct is not nested inside a teams construct." (5.2 §11.7.1 p.259 l.5-7)
|
|
26
|
+
! spec (this program): The loop bind(teams) reduction(+: r) is strictly nested in the teams region of target teams,
|
|
27
|
+
! the case the restriction leaves specified, so r must be 55; amdflang rejects the reduction.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
integer :: r, i
|
|
4
|
+
r = 0
|
|
5
|
+
!$omp taskgroup task_reduction(max: r)
|
|
6
|
+
!$omp target in_reduction(max: r)
|
|
7
|
+
do i = 1, 10
|
|
8
|
+
r = max(r, i)
|
|
9
|
+
end do
|
|
10
|
+
!$omp end target
|
|
11
|
+
!$omp end taskgroup
|
|
12
|
+
print *, 'r =', r
|
|
13
|
+
end program p
|
|
14
|
+
! site:
|
|
15
|
+
! title: amdflang: task_reduction(max: r) / in_reduction(max: r) rejected ("Internal: no symbol found for 'max'")
|
|
16
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-task-reduction-max-control.f90 the reduction identifier + instead of max
|
|
17
|
+
! + (r = r + i)
|
|
18
|
+
! end site
|
|
19
|
+
! spec (requirement): In Fortran the intrinsic procedure names max and min are OpenMP reduction identifiers, usable
|
|
20
|
+
! wherever a reduction identifier is.
|
|
21
|
+
! "following intrinsic procedure names: max, min, iand, ior, ieor." (5.2 §5.5.1 p.124 l.24)
|
|
22
|
+
! spec (requirement): The task_reduction clause on a taskgroup specifies a reduction among tasks.
|
|
23
|
+
! "The task_reduction clause is a reduction scoping clause, as described in Section 5.5.6, that specifies a reduction
|
|
24
|
+
! among tasks." (5.2 §5.5.9 p.137 l.14-15)
|
|
25
|
+
! spec (requirement): An in_reduction clause makes a task a participant in a task reduction defined by an enclosing
|
|
26
|
+
! task_reduction clause with the same reduction identifier.
|
|
27
|
+
! "defines a task to be a participant in a task reduction that is defined by an enclosing region for a matching list
|
|
28
|
+
! item that appears in a task_reduction clause" (5.2 §5.5.10 p.138 l.11-13)
|
|
29
|
+
! spec (this program): task_reduction(max: r) on a taskgroup and in_reduction(max: r) on the enclosed target use the
|
|
30
|
+
! intrinsic max as reduction identifier for an integer; amdflang rejects both clauses with Internal: no symbol found
|
|
31
|
+
! for max.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
integer :: a(10), i
|
|
4
|
+
a = 0
|
|
5
|
+
!$omp target parallel do thread_limit(8) map(from: a)
|
|
6
|
+
do i = 1, 10
|
|
7
|
+
a(i) = i
|
|
8
|
+
end do
|
|
9
|
+
print *, 'a(3) =', a(3)
|
|
10
|
+
end program p
|
|
11
|
+
! site:
|
|
12
|
+
! title: amdflang: thread_limit on target parallel do rejected
|
|
13
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-thread-limit-target-parallel-do-control.f90 thread_limit(8) removed
|
|
14
|
+
! end site
|
|
15
|
+
! spec (requirement): The thread_limit clause is permitted on the target construct.
|
|
16
|
+
! "in_reduction, is_device_ptr, map, nowait, private, thread_limit," (5.2 §13.8 p.284 l.5)
|
|
17
|
+
! spec (requirement): On a combined construct the thread_limit clause applies to every leaf construct that permits it,
|
|
18
|
+
! so it is accepted on target parallel do and takes effect on the target leaf.
|
|
19
|
+
! "The effect of the shared, default, thread_limit, or order clause is as if it is applied to all leaf constructs that
|
|
20
|
+
! permit the clause." (5.2 §17.2 p.340 l.31-32)
|
|
21
|
+
! spec (this program): thread_limit(8) on target parallel do is applied to the target leaf construct, which permits
|
|
22
|
+
! the clause; amdflang rejects the clause on the combined construct.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
! OpenMP 5.0: linear(ref(x)) on declare simd with x a scalar dummy argument.
|
|
2
|
+
! 5.0 §2.19.4.6 p.293: "The ref or uval modifier can only be used if the
|
|
3
|
+
! list-item is a dummy argument without the VALUE attribute." and "If the
|
|
4
|
+
! ref modifier is specified, variables with the ALLOCATABLE attribute,
|
|
5
|
+
! assumed-shape arrays and polymorphic variables may not appear in the
|
|
6
|
+
! linear clause." -- so a scalar dummy is the legal 5.0 form.
|
|
7
|
+
! (5.2 §5.4.6 p.119 reverses this: with ref the item must be polymorphic,
|
|
8
|
+
! assumed-shape or ALLOCATABLE.) Expected with -fopenmp-version=50: accepted.
|
|
9
|
+
module m
|
|
10
|
+
contains
|
|
11
|
+
integer function lf(x)
|
|
12
|
+
!$omp declare simd(lf) linear(ref(x))
|
|
13
|
+
integer, intent(in) :: x
|
|
14
|
+
lf = 2*x + 1
|
|
15
|
+
end function lf
|
|
16
|
+
end module m
|
|
17
|
+
program p
|
|
18
|
+
use m
|
|
19
|
+
implicit none
|
|
20
|
+
integer :: i, b(4)
|
|
21
|
+
do i = 1, 4
|
|
22
|
+
b(i) = lf(i)
|
|
23
|
+
end do
|
|
24
|
+
print *, b
|
|
25
|
+
end program p
|
|
26
|
+
! site:
|
|
27
|
+
! disposition: out-of-scope host-only construct (declare simd on a host procedure, no target region): outside the device-offload
|
|
28
|
+
! + scope; the README does not mark it out of scope
|
|
29
|
+
! end site
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
! loop bind(thread) closely nested in teams (README.md). Expected: tot= 64 64 64 64,
|
|
2
|
+
! which CCE prints as `tot= 4*64` (a list-directed repeat count: the same values,
|
|
3
|
+
! a correction). Each team's mine is private (teams private(tm, mine)) and the loop's
|
|
4
|
+
! binding thread set is the encountering thread, so no race (offload.engine.prerun's race rule
|
|
5
|
+
! flags mine: a false positive).
|
|
6
|
+
program t
|
|
7
|
+
use omp_lib, only: omp_get_team_num
|
|
8
|
+
implicit none
|
|
9
|
+
integer, parameter :: n = 64
|
|
10
|
+
integer :: tot(4), tm, mine, i
|
|
11
|
+
tot = 0
|
|
12
|
+
!$omp target map(tofrom: tot)
|
|
13
|
+
!$omp teams num_teams(4) private(tm, mine)
|
|
14
|
+
tm = omp_get_team_num()
|
|
15
|
+
mine = 0
|
|
16
|
+
!$omp loop bind(thread)
|
|
17
|
+
do i = 1, n
|
|
18
|
+
mine = mine + 1
|
|
19
|
+
end do
|
|
20
|
+
!$omp end loop
|
|
21
|
+
tot(tm + 1) = mine
|
|
22
|
+
!$omp end teams
|
|
23
|
+
!$omp end target
|
|
24
|
+
print *, 'tot=', tot
|
|
25
|
+
end program
|
|
26
|
+
! site:
|
|
27
|
+
! title: amdflang: loop bind(thread) closely nested in teams rejected ("BIND(TEAMS) must be specified")
|
|
28
|
+
! control: ../vendor/checks/src/afar/control/afar-loop-bind-thread-in-teams-control.f90 the loop directive removed (a plain DO
|
|
29
|
+
! + loop in
|
|
30
|
+
! + each team)
|
|
31
|
+
! end site
|
|
32
|
+
! spec (requirement): With bind(thread) the binding region of a loop construct is not defined.
|
|
33
|
+
! "if binding is thread then the binding region is not defined" (5.2 §11.7.1 p.258 l.24-25)
|
|
34
|
+
! spec (requirement): When the binding region is not defined, the binding thread set is the encountering thread, so
|
|
35
|
+
! each thread executes all iterations of the loop it encounters.
|
|
36
|
+
! "If the binding region is not defined, then the binding thread set is the encountering thread." (5.2 §11.7.1 p.258
|
|
37
|
+
! l.31-32)
|
|
38
|
+
! spec (requirement): The bind clause is required only when the loop construct is not nested inside another OpenMP
|
|
39
|
+
! construct.
|
|
40
|
+
! "If a loop construct is not nested inside another OpenMP construct then the bind clause must be present." (5.2 §11.7
|
|
41
|
+
! p.258 l.1-2)
|
|
42
|
+
! spec (this program): The loop bind(thread) is closely nested in teams, so each team's initial thread runs all 64
|
|
43
|
+
! iterations on its private mine and tot is 64 for every team; amdflang rejects the construct with BIND(TEAMS) must
|
|
44
|
+
! be specified.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
program p
|
|
2
|
+
implicit none
|
|
3
|
+
integer, parameter :: n = 16, m = 4
|
|
4
|
+
integer :: o1(n, m), i, j
|
|
5
|
+
integer(8) :: cs
|
|
6
|
+
o1 = 0
|
|
7
|
+
call kp(o1)
|
|
8
|
+
cs = sum(int(o1, 8))
|
|
9
|
+
print '(a,i0,a,i0)', 'RESULT checksum=', cs, ' ran_on_host=', 0
|
|
10
|
+
contains
|
|
11
|
+
subroutine kp(o1)
|
|
12
|
+
integer, intent(inout) :: o1(:, :)
|
|
13
|
+
integer :: i, j
|
|
14
|
+
!$omp target teams distribute parallel do map(tofrom: o1)
|
|
15
|
+
do i = 1, n
|
|
16
|
+
!$omp simd nontemporal(o1)
|
|
17
|
+
do j = 1, m
|
|
18
|
+
o1(i, j) = i + j
|
|
19
|
+
end do
|
|
20
|
+
end do
|
|
21
|
+
end subroutine kp
|
|
22
|
+
end program p
|
|
23
|
+
! site:
|
|
24
|
+
! title: amdflang: "verification of lowering to FIR failed" for nontemporal on an assumed-shape dummy
|
|
25
|
+
! control: ../vendor/checks/src/afar/control/afar-nontemporal-assumed-shape-ice-control.f90 nontemporal(o1) removed from the simd
|
|
26
|
+
! + directive
|
|
27
|
+
! end site
|
|
28
|
+
! spec (requirement): The nontemporal clause on a simd construct takes a list of variables, and its text states no
|
|
29
|
+
! restriction on their form, so an assumed-shape dummy array is a valid list item.
|
|
30
|
+
! "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low
|
|
31
|
+
! temporal locality across the iterations in which those storage locations are accessed." (5.2 §10.4.1 p.236
|
|
32
|
+
! l.21-22)
|
|
33
|
+
! spec (requirement): The list items of nontemporal may also appear in data-environment attribute clauses.
|
|
34
|
+
! "The list items of the nontemporal clause may also appear as list items of data-environment attribute clauses." (5.2
|
|
35
|
+
! §10.4.1 p.236 l.23-24)
|
|
36
|
+
! spec (this program): nontemporal(o1) names an assumed-shape dummy that is also mapped by the enclosing target
|
|
37
|
+
! construct; the spec text has no restriction against assumed-shape list items (it does not mention them), and
|
|
38
|
+
! amdflang stops with a failed lowering to FIR.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module fuzz_dmod
|
|
2
|
+
implicit none
|
|
3
|
+
type :: pair_t
|
|
4
|
+
integer :: x, y
|
|
5
|
+
end type pair_t
|
|
6
|
+
!$omp declare reduction(padd: pair_t: omp_out = &
|
|
7
|
+
!$omp& pair_t(omp_out%x + omp_in%x, omp_out%y + omp_in%y)) &
|
|
8
|
+
!$omp& initializer(omp_priv = pair_t(0, 0))
|
|
9
|
+
end module fuzz_dmod
|
|
10
|
+
program fuzz_prog
|
|
11
|
+
use fuzz_dmod
|
|
12
|
+
implicit none
|
|
13
|
+
integer, parameter :: n = 64
|
|
14
|
+
type(pair_t) :: rp
|
|
15
|
+
integer :: i
|
|
16
|
+
rp = pair_t(1, 2)
|
|
17
|
+
!$omp target teams distribute parallel do reduction(padd: rp) map(tofrom: rp)
|
|
18
|
+
do i = 1, n
|
|
19
|
+
rp = pair_t(rp%x + i, rp%y + mod(i, 3))
|
|
20
|
+
end do
|
|
21
|
+
print '(a,i0,a,i0)', 'RESULT checksum=', rp%x * 1000 + rp%y, ' ran_on_host=', 0
|
|
22
|
+
end program fuzz_prog
|
|
23
|
+
! site:
|
|
24
|
+
! title: amdflang: declare reduction on a derived type used in a target loop fails at the device link (flang runtime symbols
|
|
25
|
+
! + undefined)
|
|
26
|
+
! control: ../vendor/checks/src/afar/control/afar-udr-derived-type-link-control.f90 the same reduction on a host parallel do (no
|
|
27
|
+
! + target
|
|
28
|
+
! + teams
|
|
29
|
+
! + distribute)
|
|
30
|
+
! end site
|
|
31
|
+
! spec (requirement): A declare reduction directive declares a user-defined reduction identifier usable in a reduction
|
|
32
|
+
! clause.
|
|
33
|
+
! "The declare reduction directive declares a reduction-identifier that can be used in a reduction clause as a
|
|
34
|
+
! user-defined reduction." (5.2 §5.5.11 p.139 l.18-19)
|
|
35
|
+
! spec (requirement): The identifier can be used in a reduction clause on variables of the types listed in the
|
|
36
|
+
! directive, here a derived type.
|
|
37
|
+
! "The reduction-identifier can later be used in a reduction clause that uses variables of the types specified in the
|
|
38
|
+
! declare reduction directive." (5.2 §5.5.11 p.139 l.24-26)
|
|
39
|
+
! spec (this program): The module declares reduction(padd: pair_t) and the program uses padd on a target teams
|
|
40
|
+
! distribute parallel do; the compiler must generate the combiner and initializer for the device, and amdflang
|
|
41
|
+
! instead fails at the device link on undefined flang runtime symbols.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
! AFAR (amdflang 24.0.0git, drop 24.3.0), MI300A gfx942, -O2:
|
|
2
|
+
! an `atomic` min update of a mapped scalar inside a `parallel do` nested in
|
|
3
|
+
! `target teams distribute`, with an allocatable array written in the same
|
|
4
|
+
! loop, faults at HSA_XNACK=1 ("memory access fault ... Write access to a
|
|
5
|
+
! read-only page"); at HSA_XNACK=0 it prints r=0 s=0 (correct).
|
|
6
|
+
! Needed: an array written in the loop, the inner parallel do (without it: correct), and an
|
|
7
|
+
! atomic update whose right-hand side depends on i. An atomic add with a constant right-hand
|
|
8
|
+
! side is correct; r = r + mod(i, n) faults like the atomic min. In this combined form the
|
|
9
|
+
! allocatable o1 faults and an explicit-shape array is correct; with separate directives the
|
|
10
|
+
! explicit-shape array faults too (18-program matrix: data/reports/fuzz5-oop-afar.md, cluster C).
|
|
11
|
+
! map(always) or an explicit map of o1 do not matter.
|
|
12
|
+
! Hand-reduced from data/findings/fuzz/b2-183-afar.f90.
|
|
13
|
+
! amdflang -fopenmp --offload-arch=gfx942 -O2 afar-xnack1-atomic-min-nested-parallel.f90
|
|
14
|
+
! HSA_XNACK=1 OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
15
|
+
program p
|
|
16
|
+
implicit none
|
|
17
|
+
integer, parameter :: n = 24, m = 2
|
|
18
|
+
integer, allocatable :: o1(:,:)
|
|
19
|
+
integer :: i, j, r
|
|
20
|
+
allocate(o1(n, m))
|
|
21
|
+
o1 = 0
|
|
22
|
+
r = 7
|
|
23
|
+
!$omp target teams distribute map(tofrom: r)
|
|
24
|
+
do i = 1, n
|
|
25
|
+
!$omp parallel do
|
|
26
|
+
do j = 1, m
|
|
27
|
+
o1(i, j) = 0
|
|
28
|
+
!$omp atomic
|
|
29
|
+
r = min(r, mod(i, n))
|
|
30
|
+
end do
|
|
31
|
+
!$omp end parallel do
|
|
32
|
+
end do
|
|
33
|
+
!$omp end target teams distribute
|
|
34
|
+
print '(a,i0,a,i0)', 'r=', r, ' s=', sum(o1)
|
|
35
|
+
end program p
|
|
36
|
+
! site:
|
|
37
|
+
! title: amdflang at HSA_XNACK=1: atomic min in a parallel do nested in target teams distribute with an allocatable array faults
|
|
38
|
+
! + (write to a read-only page)
|
|
39
|
+
! control: ../vendor/checks/src/afar/control/afar-xnack1-atomic-min-nested-parallel-control.f90 o1 an explicit-shape array
|
|
40
|
+
! + instead of an
|
|
41
|
+
! + allocatable
|
|
42
|
+
! end site
|
|
43
|
+
! spec (requirement): In Fortran an atomic update may have the form x = intrinsic-procedure-name(x, expr-list) where
|
|
44
|
+
! the intrinsic is MAX or MIN.
|
|
45
|
+
! "x = intrinsic-procedure-name (x, expr-list)" (5.2 §4.3.1.3 p.81 l.14)
|
|
46
|
+
! spec (requirement): The atomic construct makes the access to the storage location atomic, so concurrent updates by
|
|
47
|
+
! the threads of nested parallel regions produce no indeterminate value.
|
|
48
|
+
! "The atomic construct ensures that a specific storage location is accessed atomically so that possible simultaneous
|
|
49
|
+
! reads and writes by multiple threads do not result in indeterminate values." (5.2 §15.8.4 p.311 l.29-30)
|
|
50
|
+
! spec (this program): The atomic min update of the mapped scalar r runs in a parallel do nested in target teams
|
|
51
|
+
! distribute and must give r = 0; the spec has no text on memory faults with unified-memory settings (HSA_XNACK=1 is
|
|
52
|
+
! a vendor runtime setting), so the cited text states only that the update must complete correctly, and the write
|
|
53
|
+
! access fault to a read-only page is a deviation from it.
|