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,96 @@
|
|
|
1
|
+
! # Finding: AFAR amdflang ignores the stride of a Fortran array
|
|
2
|
+
! # section in `target update`: from(a(1:7:2)) copies all of a
|
|
3
|
+
!
|
|
4
|
+
! - compilers: AFAR amdflang 24.0.0git (drop 24.3.0), -O2: MI300A gfx942
|
|
5
|
+
! (HSA_XNACK=0; gate below) and MI250X gfx90a (HSA_XNACK=0; one probe of
|
|
6
|
+
! three runs, not gated)
|
|
7
|
+
! - expected: a: 11.0 2.0 13.0 4.0 15.0 6.0 17.0 8.0
|
|
8
|
+
! / strided bad= 0 contiguous bad= 0
|
|
9
|
+
! - actual: a: 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0
|
|
10
|
+
! / strided bad= 4 (every element of a, a(8) too, comes back)
|
|
11
|
+
! (results/harvest/probe/gate/afar-flang-strided.r*.jsonl; gfx90a:
|
|
12
|
+
! results/harvest/probe/f1f2.jsonl, strided_f.f90)
|
|
13
|
+
! - gate (four environments on gfx942 X0, tools/campaigns/harvest_probe.py
|
|
14
|
+
! --gate-envs, offload.engine.gate.judge): the stored run (three repeats) and
|
|
15
|
+
! (a), (b), (d) on tuolumne1020, (c) on tuolumne1021: the same wrong
|
|
16
|
+
! answer in every run; confirmed.
|
|
17
|
+
! - rule: "The list items may include array sections with stride
|
|
18
|
+
! expressions ... If a list item is an array or array section then it is
|
|
19
|
+
! treated as if it is replaced by each of its array elements in the
|
|
20
|
+
! clause" (OpenMP 5.2 §5.9 p.165 l.13-17); a(1:7:2) is a(1), a(3), a(5),
|
|
21
|
+
! a(7) (a subscript triplet, Fortran 2008 6.5.3.3.2).
|
|
22
|
+
! - copy mode only: with storage shared between host and device
|
|
23
|
+
! (HSA_XNACK=1) every device write is visible, so elements outside the
|
|
24
|
+
! section may differ legitimately.
|
|
25
|
+
! - same-compiler controls (correct): update from(b(1:4)) (contiguous);
|
|
26
|
+
! AFAR amdclang's C form from(a[0:4:2]) (harvest/cce-c-strided-target-update.c).
|
|
27
|
+
! - other families: none runs it: CCE ftn 19.0.0, 20.0.2, 21.0.3 reject it
|
|
28
|
+
! ("ftn-1747: The stride specified for array "A" in the MAP clause must
|
|
29
|
+
! not be greater than 1", although its man page says "Non-contiguous
|
|
30
|
+
! updates are supported for normal array slice expressions that specify a
|
|
31
|
+
! lower bound, upper bound, and optional stride"); NVHPC nvfortran 25.11
|
|
32
|
+
! and 26.9 reject it (NVFORTRAN-S-0034 syntax error at the stride).
|
|
33
|
+
! - legality: legal by the quoted spec text only (no independent compiler
|
|
34
|
+
! witness: AFAR is the compiler under test, and CCE and NVHPC reject the
|
|
35
|
+
! stride). offload.engine.rules with the race rule accepts it. 5.2 §5.9 allows
|
|
36
|
+
! strided array sections in motion clauses; the map clause's contiguity
|
|
37
|
+
! restriction (CCE's ftn-1747 speaks of "the MAP clause") does not apply
|
|
38
|
+
! to `target update`. CCE's rejection is the finding
|
|
39
|
+
! fuzz/s1-6888-cce21.f90 (ftn-1747); NVHPC's is a candidate defect. That
|
|
40
|
+
! finding calls AFAR correct on its strided `to`: its program checks the
|
|
41
|
+
! updated elements only, where an ignored stride would not show.
|
|
42
|
+
! - found by: while reducing the CCE C strided-update failures of
|
|
43
|
+
! llvm-project offload/test/offloading/strided_update/ (no Fortran test
|
|
44
|
+
! there).
|
|
45
|
+
! AFAR: amdflang -fopenmp --offload-arch=gfx942 -O2
|
|
46
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=0 ./a.out
|
|
47
|
+
program strided_f
|
|
48
|
+
use omp_lib
|
|
49
|
+
implicit none
|
|
50
|
+
real(8) :: a(8), b(8)
|
|
51
|
+
integer :: i, bad_a, bad_b, on_host
|
|
52
|
+
do i = 1, 8
|
|
53
|
+
a(i) = i
|
|
54
|
+
b(i) = i
|
|
55
|
+
end do
|
|
56
|
+
on_host = 1
|
|
57
|
+
!$omp target data map(to: a, b)
|
|
58
|
+
!$omp target map(from: on_host)
|
|
59
|
+
if (omp_is_initial_device()) then
|
|
60
|
+
on_host = 1
|
|
61
|
+
else
|
|
62
|
+
on_host = 0
|
|
63
|
+
end if
|
|
64
|
+
do i = 1, 8
|
|
65
|
+
a(i) = a(i) + 10
|
|
66
|
+
b(i) = b(i) + 10
|
|
67
|
+
end do
|
|
68
|
+
!$omp end target
|
|
69
|
+
!$omp target update from(a(1:7:2))
|
|
70
|
+
!$omp target update from(b(1:4))
|
|
71
|
+
!$omp end target data
|
|
72
|
+
bad_a = 0
|
|
73
|
+
bad_b = 0
|
|
74
|
+
do i = 1, 8
|
|
75
|
+
if (mod(i, 2) == 1) then
|
|
76
|
+
if (a(i) /= i + 10) bad_a = bad_a + 1
|
|
77
|
+
else
|
|
78
|
+
if (a(i) /= i) bad_a = bad_a + 1
|
|
79
|
+
end if
|
|
80
|
+
if (i <= 4) then
|
|
81
|
+
if (b(i) /= i + 10) bad_b = bad_b + 1
|
|
82
|
+
else
|
|
83
|
+
if (b(i) /= i) bad_b = bad_b + 1
|
|
84
|
+
end if
|
|
85
|
+
end do
|
|
86
|
+
print '(a,8f6.1)', 'a:', a
|
|
87
|
+
print '(a,i0,a,i0)', 'strided bad= ', bad_a, ' contiguous bad= ', bad_b
|
|
88
|
+
if (bad_a == 0) then
|
|
89
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', on_host, ' check=pass'
|
|
90
|
+
else
|
|
91
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', on_host, ' check=fail'
|
|
92
|
+
end if
|
|
93
|
+
end program strided_f
|
|
94
|
+
! site:
|
|
95
|
+
! title: amdflang: target update from a strided array section copies the whole array
|
|
96
|
+
! end site
|
offload/_root/data/findings/harvest/cce-acc-declare-create-module-allocatable-xnack1-fault.f90
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
! # Finding (known-issues harvest): CCE faults on a module allocatable in
|
|
2
|
+
! declare create at HSA_XNACK=1 (MI300A)
|
|
3
|
+
!
|
|
4
|
+
! - source: MFC's compiler-ticket list (PE-53844, "CCE >17 crashes on host_data use_device for
|
|
5
|
+
! module variables"), reconstructed as data/bench/harvest-known hk-008 (a declare create module
|
|
6
|
+
! allocatable, host_data use_device, a deviceptr routine); the fault is at the first compute
|
|
7
|
+
! construct, before host_data, so this file drops host_data
|
|
8
|
+
! (data/reports/harvest-known/v008-declare-create-alloc.f90)
|
|
9
|
+
! - compilers: CCE 19.0.0, 20.0.2, 21.0.3, ftn -h acc -O2, MI300A at HSA_XNACK=1 (THP always)
|
|
10
|
+
! - expected: bad = 0, RESULT ... check=pass. For an allocatable in declare create, "for an
|
|
11
|
+
! allocate statement for var ... memory will be allocated in both local memory as well as in the
|
|
12
|
+
! current device memory" on a non-shared memory device (OpenACC 3.4 §2.13.2 p.83 l.3053-3057); on
|
|
13
|
+
! a shared memory device the host memory is the device's; either way buf is present in the
|
|
14
|
+
! parallel loop and the update copies (or leaves) the values
|
|
15
|
+
! - actual: CCE 19 and 20: "Memory access fault by GPU node-4 ... on address 0x6000. Reason: Write
|
|
16
|
+
! access to a read-only page." (SIGABRT); CCE 21: "hipStreamSynchronize returned
|
|
17
|
+
! hipErrorIllegalAddress ... from v008-declare-create-alloc.f90:19" (the parallel loop), exit 1
|
|
18
|
+
! - control (same compiler): HSA_XNACK=0 passes; at HSA_XNACK=1 a local allocatable made present
|
|
19
|
+
! with enter data create passes (c008-local-enter-data.f90), and a fixed-size module array in
|
|
20
|
+
! declare create passes (c008-fixed-module.f90), both in data/reports/harvest-known/
|
|
21
|
+
! - other families: NVHPC 25.11 and 26.9 (OpenACC; separate and managed memory) pass; AFAR has no
|
|
22
|
+
! OpenACC
|
|
23
|
+
! - legality: the pre-run check (rules and the AFAR front end with -fopenacc) accepts it; present
|
|
24
|
+
! requires the data present, which declare create and the allocate statement provide
|
|
25
|
+
! - also: hk-007 (MFC ticket OLCFHELP-19298 / HPECOE-71) and hk-013 (thornado commit 2253976852,
|
|
26
|
+
! "another CCE bug") hold a module allocatable in declare create too, and fail the same way on CCE
|
|
27
|
+
! 19/20/21 at HSA_XNACK=1 only (19 and 20 fault, 21 hipErrorIllegalAddress; another node)
|
|
28
|
+
! - evidence: results/harvest-known/main (hk-007, hk-008, hk-013, CCE 19/20/21 at HSA_XNACK=1),
|
|
29
|
+
! results/harvest-known/probes.tuolumne.jsonl, probes.wingtip.jsonl
|
|
30
|
+
module v008_m
|
|
31
|
+
implicit none
|
|
32
|
+
real(8), allocatable :: buf(:)
|
|
33
|
+
!$acc declare create(buf)
|
|
34
|
+
end module v008_m
|
|
35
|
+
|
|
36
|
+
program v008
|
|
37
|
+
use openacc
|
|
38
|
+
use v008_m
|
|
39
|
+
implicit none
|
|
40
|
+
integer, parameter :: n = 4096
|
|
41
|
+
integer :: i, bad, hk_host
|
|
42
|
+
allocate(buf(n))
|
|
43
|
+
!$acc parallel loop present(buf)
|
|
44
|
+
do i = 1, n
|
|
45
|
+
buf(i) = real(i, 8)
|
|
46
|
+
end do
|
|
47
|
+
!$acc update host(buf)
|
|
48
|
+
bad = count(buf /= [(real(i, 8), i = 1, n)])
|
|
49
|
+
hk_host = 1
|
|
50
|
+
!$acc parallel num_gangs(1) copy(hk_host)
|
|
51
|
+
if (.not. acc_on_device(acc_device_host)) hk_host = 0
|
|
52
|
+
!$acc end parallel
|
|
53
|
+
print '(a,i0)', 'bad = ', bad
|
|
54
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', hk_host, ' check=', merge('pass', 'fail', bad == 0)
|
|
55
|
+
end program v008
|
|
56
|
+
! site:
|
|
57
|
+
! title: ftn (OpenACC): a module allocatable in declare create faults at HSA_XNACK=1
|
|
58
|
+
! end site
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// # Finding: CCE craycc stops with "overlaps present region but is
|
|
2
|
+
// # not contained" when a target region implicitly maps a structure some of
|
|
3
|
+
// # whose members a target data construct already mapped
|
|
4
|
+
//
|
|
5
|
+
// - compilers: CCE craycc 19.0.0, 20.0.2, 21.0.3, 21.0.4, -O2: this file on
|
|
6
|
+
// MI300A gfx942 (HSA_XNACK 0 and 1); the OpenMP Examples program
|
|
7
|
+
// target_struct_map.4 (Case 1 of which this file is) also on MI250X gfx90a.
|
|
8
|
+
// - expected: 4 202 dev= 1 (s.p[0] = 0*2+4, s.p[99] = 99*2+4)
|
|
9
|
+
// - actual: no output; the runtime stops at the target construct:
|
|
10
|
+
// "ACC: libcrayacc/acc_present.c:762 CRAY_ACC_ERROR - Host region (... to
|
|
11
|
+
// ...) overlaps present region (... to ... index 0) but is not contained
|
|
12
|
+
// for 's'", exit status 1, every run, both memory modes.
|
|
13
|
+
// - rule: the target construct references s (the call saxpy(&s)), so s is
|
|
14
|
+
// treated as if it appeared in a map clause with map-type tofrom (5.2 §5.8.1
|
|
15
|
+
// p.149 l.4-5); s.a, s.b and s.p are already present as one storage block
|
|
16
|
+
// (list items with the same containing structure form "a single mappable
|
|
17
|
+
// storage block", 5.2 §5.8.3 p.152 l.28-31); and "If a single contiguous
|
|
18
|
+
// part of the original storage of a list item with an implicit data-mapping
|
|
19
|
+
// attribute has corresponding storage in the device data environment prior
|
|
20
|
+
// to a task encountering the construct on which the map clause appears,
|
|
21
|
+
// only that part of the original storage will have corresponding storage in
|
|
22
|
+
// the device data environment as a result of the map clause" (5.2 §5.8.3
|
|
23
|
+
// p.154 l.18-21; the same text in 5.0 §2.19.7.1 p.320 l.18-21). The
|
|
24
|
+
// OpenMP Examples document this form as working (target_struct_map.4,
|
|
25
|
+
// Case 1: "Explicitly mapping S1.p, S1.a, and S1.b rather than S1 avoids
|
|
26
|
+
// mapping the entire structure").
|
|
27
|
+
// - same-compiler controls (correct, 4 202 dev= 1 on CCE 19, 20, 21, 21.0.4):
|
|
28
|
+
// s.big added to the target data map (the whole structure present); no
|
|
29
|
+
// target data and map(s.p[:N], s.a, s.b) on the target construct (the
|
|
30
|
+
// Examples' Case 3, 5.2 §5.8.3 p.154 l.22-27). Both are files now
|
|
31
|
+
// (controls/cce-c-implicit-struct-map-partly-present-whole-control.c and
|
|
32
|
+
// controls/cce-c-implicit-struct-map-partly-present-target-only-control.c);
|
|
33
|
+
// re-run 2026-11-01 on MI300A, HSA_XNACK 0 and 1: correct on CCE 19, 20,
|
|
34
|
+
// 21, 21.0.4 and on AFAR, while this file fails on CCE 19, 20, 21, 21.0.4
|
|
35
|
+
// and is correct on AFAR (results/triage2/cce.jsonl).
|
|
36
|
+
// - also: the Examples' Case 2 (target data map(s.p[:N]), then target
|
|
37
|
+
// map(s.p[:0], s.a, s.b) with s implicit) stops the same way on every CCE
|
|
38
|
+
// cell; libgomp's target-link-2.c (declare target link(arr), enter data
|
|
39
|
+
// map(arr[5:10]), then a target region that references arr) stops with the
|
|
40
|
+
// same message on CCE 19, 20, 21 (gfx90a): an implicit map (5.2 §5.8.1
|
|
41
|
+
// p.148 l.9-11) of a partly present array.
|
|
42
|
+
// - other families: AFAR amdclang prints 4 202 dev= 1 (this file and the
|
|
43
|
+
// three Examples cases, gfx942 X0 and X1, gfx90a). NVHPC nvc 25.11 and 26.9
|
|
44
|
+
// (A100, separate and managed memory) fail this file at run time, exit
|
|
45
|
+
// status 1, with a different message: "FATAL ERROR: variable in data clause
|
|
46
|
+
// is partially present on the device: name=s" at the target construct (the
|
|
47
|
+
// present table lists s.a, s.b and, in separate memory, s.p[:100]). That is
|
|
48
|
+
// the OpenACC runtime's partial-presence error, and it reaches further than
|
|
49
|
+
// CCE's: NVHPC also fails the whole-structure control (s.big added, so every
|
|
50
|
+
// member is present, each as its own entry) that CCE and AFAR run correctly,
|
|
51
|
+
// and runs the target-only control correctly. All four gate environments
|
|
52
|
+
// agree on both releases and both memory modes (site matrix rows,
|
|
53
|
+
// 2026-11-01, c on another GPU; a rerun of the file and both controls, three
|
|
54
|
+
// runs each, in a, b, d on GPU 0 and c on GPU 1:
|
|
55
|
+
// results/triage2/wingtip/nvhpc/nv.[abcd].jsonl). The Examples program's
|
|
56
|
+
// SIGSEGV on NVHPC is the 8 MB stack (its three structures hold 12 MB): with
|
|
57
|
+
// a 64 MB stack (ulimit -s 65536) it stops at Case 1 with the same
|
|
58
|
+
// partial-presence error (name=S1; nv3.jsonl). The failure is NVHPC's own
|
|
59
|
+
// and not CCE's, so this finding stays CCE's and the site shows NVHPC as
|
|
60
|
+
// failing another way; an NVHPC finding (the whole-structure control is the
|
|
61
|
+
// cleaner reproducer) is not made here. GCC 16.2 does not compile this file:
|
|
62
|
+
// the target data map list is the trigger of an internal compiler error
|
|
63
|
+
// on both targets (gcc-c-target-data-struct-pointer-section-ice.c).
|
|
64
|
+
// - harvest: dev programs h2-ompex-target-struct-map-4-c and
|
|
65
|
+
// h2-gomp-ccc-target-link-2 (data/bench/harvest2), wrong_answer on every CCE
|
|
66
|
+
// cell, gate confirmed on gfx90a.
|
|
67
|
+
// - legality: offload.engine.prerun.check accepts it (the rules with the race
|
|
68
|
+
// rule, and the AFAR clang front end), and accepts both controls (re-checked
|
|
69
|
+
// 2026-11-01, Tuolumne pbatch; results/triage2/legal2.json). The rule it
|
|
70
|
+
// relies on is the one quoted above (5.2 §5.8.3 p.154 l.18-21: the part of
|
|
71
|
+
// an implicitly mapped list item that is present is the only part mapped);
|
|
72
|
+
// AFAR runs the file correctly, and the OpenMP Examples document the form.
|
|
73
|
+
// CCE: craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
|
|
74
|
+
// -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -fopenmp-version=52 -O2
|
|
75
|
+
// Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
76
|
+
#include <stdio.h>
|
|
77
|
+
#include <stdlib.h>
|
|
78
|
+
#include <omp.h>
|
|
79
|
+
#define N 100
|
|
80
|
+
struct foo { char big[200000]; float a, b; float *p; };
|
|
81
|
+
#pragma omp begin declare target
|
|
82
|
+
void saxpy(struct foo *s) { for (int i = 0; i < N; i++) s->p[i] = s->p[i] * s->a + s->b; }
|
|
83
|
+
#pragma omp end declare target
|
|
84
|
+
int main(void) {
|
|
85
|
+
struct foo s;
|
|
86
|
+
int dev = 0;
|
|
87
|
+
s.a = 2; s.b = 4; s.p = malloc(sizeof(float) * N);
|
|
88
|
+
for (int i = 0; i < N; i++) s.p[i] = i;
|
|
89
|
+
#pragma omp target data map(s.p[:N], s.p, s.a, s.b)
|
|
90
|
+
#pragma omp target map(from: dev)
|
|
91
|
+
{ saxpy(&s); dev = !omp_is_initial_device(); }
|
|
92
|
+
printf("%.0f %.0f dev= %d\n", s.p[0], s.p[N - 1], dev);
|
|
93
|
+
int ok = s.p[0] == 4 && s.p[N - 1] == 202;
|
|
94
|
+
printf("RESULT ran_on_host=%d check=%s\n", !dev, ok ? "pass" : "fail");
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
// site:
|
|
98
|
+
// title: craycc stops with "overlaps present region but is not contained" when a target region implicitly maps a partly mapped
|
|
99
|
+
// + structure
|
|
100
|
+
// end site
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// # Finding: CCE craycc ignores the stride of an array section in
|
|
2
|
+
// # `target update`: from(a[0:4:2]) copies a[0..3], to(a[1:4:2]) a[1..4]
|
|
3
|
+
//
|
|
4
|
+
// - compilers: CCE craycc 19.0.0, 20.0.2, 21.0.3, -O2: this file on MI300A
|
|
5
|
+
// gfx942 and MI250X gfx90a (HSA_XNACK=0); the 25 non-holdout upstream
|
|
6
|
+
// tests on both
|
|
7
|
+
// - expected: a: 10 1 12 3 14 5 16 7 / strided bad= 0 contiguous bad= 0
|
|
8
|
+
// elementwise bad= 0
|
|
9
|
+
// - actual: a: 10 11 12 13 4 5 6 7 / strided bad= 4 (the first 4 elements,
|
|
10
|
+
// not every second one); `to(a[1:4:2])` likewise writes a[1..4] (a probe,
|
|
11
|
+
// results/harvest/probe/src/strided_to.c and f1f2.jsonl, git-ignored)
|
|
12
|
+
// - rule: "The list items may include array sections with stride
|
|
13
|
+
// expressions ... If a list item is an array or array section then it is
|
|
14
|
+
// treated as if it is replaced by each of its array elements in the
|
|
15
|
+
// clause" (OpenMP 5.2 §5.9 p.165 l.13-17), and a[0:4:2] denotes the
|
|
16
|
+
// elements "{ lower-bound, lower-bound + stride, lower-bound + 2 * stride,
|
|
17
|
+
// ... , lower-bound + ((length - 1) * stride) }" (5.2 §3.2.5 p.64
|
|
18
|
+
// l.22-23): a[0], a[2], a[4], a[6].
|
|
19
|
+
// - copy mode only: with storage shared between host and device
|
|
20
|
+
// (HSA_XNACK=1) every device write is visible, so elements outside the
|
|
21
|
+
// section may differ legitimately (17 of the 25 non-holdout upstream tests
|
|
22
|
+
// fail there on AFAR and CCE alike; they are copy-only in
|
|
23
|
+
// catalog/harvest_copy_only.yaml).
|
|
24
|
+
// - same-compiler controls (correct): from(b[0:4]) (contiguous); the four
|
|
25
|
+
// elements as four `target update from(c[k:1])`.
|
|
26
|
+
// - other families: AFAR amdclang correct on this file and on all 25
|
|
27
|
+
// non-holdout upstream tests (gfx942 and gfx90a, X0). NVHPC nvc 25.11 and
|
|
28
|
+
// 26.9 reject the stride ("expected a ]", this file and the 25 tests, both
|
|
29
|
+
// modes).
|
|
30
|
+
// - vendor claim: "Non-contiguous updates are supported for normal array
|
|
31
|
+
// slice expressions that specify a lower bound, upper bound, and optional
|
|
32
|
+
// stride" (CCE 19.0.0, 20.0.2, 21.0.3 intro_openmp, data/index/claims/).
|
|
33
|
+
// - upstream: the 25 non-holdout tests of llvm-project
|
|
34
|
+
// offload/test/offloading/strided_update/ fail on every CCE cell at X0
|
|
35
|
+
// (gfx942 and gfx90a; gate confirmed).
|
|
36
|
+
// - legality: offload.engine.prerun.check accepts it (the rules and the AFAR
|
|
37
|
+
// clang front end).
|
|
38
|
+
// CCE: craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
|
|
39
|
+
// -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -fopenmp-version=52 -O2
|
|
40
|
+
// Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=0 ./a.out
|
|
41
|
+
#include <stdio.h>
|
|
42
|
+
#include <omp.h>
|
|
43
|
+
int main(void) {
|
|
44
|
+
double a[8], b[8], c[8];
|
|
45
|
+
for (int i = 0; i < 8; i++) a[i] = b[i] = c[i] = i;
|
|
46
|
+
int on_host = 1, bad_a = 0, bad_b = 0, bad_c = 0;
|
|
47
|
+
#pragma omp target data map(to: a[0:8], b[0:8], c[0:8])
|
|
48
|
+
{
|
|
49
|
+
#pragma omp target map(from: on_host)
|
|
50
|
+
{
|
|
51
|
+
on_host = omp_is_initial_device();
|
|
52
|
+
for (int i = 0; i < 8; i++) { a[i] += 10; b[i] += 10; c[i] += 10; }
|
|
53
|
+
}
|
|
54
|
+
#pragma omp target update from(a[0:4:2])
|
|
55
|
+
#pragma omp target update from(b[0:4])
|
|
56
|
+
#pragma omp target update from(c[0:1])
|
|
57
|
+
#pragma omp target update from(c[2:1])
|
|
58
|
+
#pragma omp target update from(c[4:1])
|
|
59
|
+
#pragma omp target update from(c[6:1])
|
|
60
|
+
}
|
|
61
|
+
for (int i = 0; i < 8; i++) {
|
|
62
|
+
bad_a += a[i] != (i % 2 == 0 ? i + 10 : i);
|
|
63
|
+
bad_b += b[i] != (i < 4 ? i + 10 : i);
|
|
64
|
+
bad_c += c[i] != (i % 2 == 0 ? i + 10 : i);
|
|
65
|
+
}
|
|
66
|
+
printf("a:");
|
|
67
|
+
for (int i = 0; i < 8; i++) printf(" %g", a[i]);
|
|
68
|
+
printf("\nstrided bad= %d contiguous bad= %d elementwise bad= %d\n", bad_a, bad_b, bad_c);
|
|
69
|
+
printf("RESULT ran_on_host=%d check=%s\n", on_host, bad_a == 0 ? "pass" : "fail");
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
// site:
|
|
73
|
+
// title: target update of a strided array section (C) copies the contiguous range instead of every second element
|
|
74
|
+
// end site
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
! # Finding: CCE ftn ICE "Could not find call"
|
|
2
|
+
! # (v_acc_dataplacement.c) when a target parallel region assigns the result
|
|
3
|
+
! # of omp_get_num_threads() or omp_get_thread_num()
|
|
4
|
+
!
|
|
5
|
+
! - compilers: CCE ftn 19.0.0, 20.0.2, 21.0.3, -O2: this file on MI300A
|
|
6
|
+
! gfx942 (HSA_XNACK 0 and 1); its variants on MI250X gfx90a (19.0.0,
|
|
7
|
+
! 21.0.3); the upstream test on gfx942 (both modes) and gfx90a (gate
|
|
8
|
+
! confirmed)
|
|
9
|
+
! - expected: compiles; prints x= <the team's size> (at least 1)
|
|
10
|
+
! - actual: ftn: INTERNAL COMPILER ERROR: "Could not find call"
|
|
11
|
+
! (/workspace/crayftn/pdgcs/v_acc_dataplacement.c, line 4289 in 19.0.0,
|
|
12
|
+
! 4343 in 20.0.2, 4378 in 21.0.3) (results/harvest/probe/f6.jsonl,
|
|
13
|
+
! findings_gfx942.jsonl)
|
|
14
|
+
! - rule: a legal program (OpenMP 5.2 §10.1 parallel, §18.2.2
|
|
15
|
+
! omp_get_num_threads, §18.2.4 omp_get_thread_num; both routines are
|
|
16
|
+
! among the five CCE documents as supported in offload regions:
|
|
17
|
+
! intro_openmp, data/index/claims/hpe-cce-21.0.3-intro_openmp.txt). An ICE
|
|
18
|
+
! is a compiler bug.
|
|
19
|
+
! - conditions (each a one-change variant, CCE 19.0.0 and 21.0.3): the same
|
|
20
|
+
! ICE with x = omp_get_thread_num(); with the result assigned to a private
|
|
21
|
+
! n, then x = n; with `target` and a nested `parallel` instead of the
|
|
22
|
+
! combined construct; with x an array element; with map(tofrom: x); with
|
|
23
|
+
! `use omp_lib, only: ...`; in a main program or a subroutine, with or
|
|
24
|
+
! without SAVE. No ICE: `x = 7` (no call); a call in an IF condition only
|
|
25
|
+
! (`if (omp_get_thread_num() == 0) then` ..., as in
|
|
26
|
+
! cce19-target-parallel-guarded-loop.f90); `target teams` with
|
|
27
|
+
! x = omp_get_num_teams() (x= 220).
|
|
28
|
+
! - other families: AFAR amdflang compiles and runs it (x= 256, gfx942 at
|
|
29
|
+
! HSA_XNACK 0 and 1; parallel = T on the upstream test); NVHPC nvfortran
|
|
30
|
+
! 25.11 and 26.9 compile and run it (x= 13824, A100, separate and
|
|
31
|
+
! managed).
|
|
32
|
+
! - upstream: llvm-project offload/test/offloading/fortran/
|
|
33
|
+
! basic-target-parallel-region.f90 (CCE ICE on every CCE cell, gate
|
|
34
|
+
! confirmed on gfx90a); AOMP test/smoke/flang-313307-simple-spmd hits the
|
|
35
|
+
! same ICE.
|
|
36
|
+
! - legality: offload.engine.prerun.check accepts it (the rules with the race
|
|
37
|
+
! rule, and the AFAR flang front end); only thread 0 writes x.
|
|
38
|
+
! CCE: ftn -fopenmp -O2 (module load cce/<v> craype-accel-amd-gfx942 rocm/<r>;
|
|
39
|
+
! module unload cray-mpich)
|
|
40
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
41
|
+
program tp_guarded
|
|
42
|
+
use omp_lib
|
|
43
|
+
implicit none
|
|
44
|
+
integer :: x, on_host
|
|
45
|
+
x = -1
|
|
46
|
+
on_host = 1
|
|
47
|
+
!$omp target map(from: on_host)
|
|
48
|
+
if (omp_is_initial_device()) then
|
|
49
|
+
on_host = 1
|
|
50
|
+
else
|
|
51
|
+
on_host = 0
|
|
52
|
+
end if
|
|
53
|
+
!$omp end target
|
|
54
|
+
!$omp target parallel map(from: x)
|
|
55
|
+
if (omp_get_thread_num() == 0) x = omp_get_num_threads()
|
|
56
|
+
!$omp end target parallel
|
|
57
|
+
print '(a,i0)', 'x= ', x
|
|
58
|
+
if (x >= 1) then
|
|
59
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', on_host, ' check=pass'
|
|
60
|
+
else
|
|
61
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', on_host, ' check=fail'
|
|
62
|
+
end if
|
|
63
|
+
end program tp_guarded
|
|
64
|
+
! site:
|
|
65
|
+
! title: ftn: internal compiler error ("Could not find call") when a target parallel region assigns omp_get_num_threads() or
|
|
66
|
+
! + omp_get_thread_num()
|
|
67
|
+
! end site
|
offload/_root/data/findings/harvest/cce-named-constant-array-declare-target-routine-rejected.f90
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
! # Finding (known-issues harvest): CCE rejects a module's named-constant array
|
|
2
|
+
! referenced in a declare target routine
|
|
3
|
+
!
|
|
4
|
+
! - source: holdout (a case of the known-issues harvest, held out); this file is the
|
|
5
|
+
! minimal form (data/reports/harvest-known/v-param-array-routine.f90)
|
|
6
|
+
! - compilers: CCE 19.0.0, 20.0.2, 21.0.3 (ftn -fopenmp), gfx942 and gfx90a
|
|
7
|
+
! - expected: the program compiles and prints RESULT ... check=pass: pick returns c(i), a
|
|
8
|
+
! module named constant [1.5, 2.5]
|
|
9
|
+
! - actual: "ftn-7066 ftn: ERROR PICK ... Unsupported accelerator code error: Global in
|
|
10
|
+
! accelerator routine without declare -- c" on every CCE release and both architectures. HPE
|
|
11
|
+
! lists CAST-36609 ("ftn-7066 ... Global in accelerator routine without declare") as resolved
|
|
12
|
+
! in CCE 19.0.0 (data/index/claims/hpe-cce-19.0.0-release_info.txt line 114); this trigger remains
|
|
13
|
+
! - control (same compiler): passes with a scalar named constant in the routine
|
|
14
|
+
! (c-param-scalar-routine.f90), with the array a named constant of the routine itself
|
|
15
|
+
! (c-param-array-local.f90), and with the array indexed in the target region itself
|
|
16
|
+
! (c-param-array-region-only.f90); all in data/reports/harvest-known/
|
|
17
|
+
! - other families: AFAR compiles and runs it (check=pass); NVHPC 25.11 and 26.9 reject it too
|
|
18
|
+
! (harvest/nvhpc-named-constant-array-declare-target-routine-rejected.f90)
|
|
19
|
+
! - legality: Fortran named constants are not variables; OpenMP 5.2's declare target
|
|
20
|
+
! requirement covers variables only: "A variable referenced in a target region but not the
|
|
21
|
+
! target construct that is not declared in the target region must appear in a declare target
|
|
22
|
+
! directive" (§13.8 p.286 l.31-32), and named constants are predetermined shared (§5.1.1 p.98
|
|
23
|
+
! l.11: "Assumed-size arrays and named constants are shared"); a named constant is a list
|
|
24
|
+
! item only "in clauses where it is explicitly allowed" (§3.2.1 p.61 l.10), and declare
|
|
25
|
+
! target's clauses do not name it. The pre-run check (rules and the AFAR front end) accepts the
|
|
26
|
+
! program
|
|
27
|
+
! - the OpenACC form (routine seq; hk-015) fails the same way on CCE, but OpenACC 3.4
|
|
28
|
+
! §2.15.2 p.98 l.3623-3625 asks a declare directive for "Fortran module ... variables or arrays"
|
|
29
|
+
! used in accelerator routines, which may cover a named-constant array: not claimed here
|
|
30
|
+
! - evidence: results/harvest-known/main.tioga (gate: confirmed), main (Tuolumne),
|
|
31
|
+
! the MI250X probe runs' output (results/harvest-known/logs/tioga/probe.f656gDkdAd9R.log and
|
|
32
|
+
! probe.f656iLRSBypT.log; their rows file probes.tioga.jsonl was not kept); the three controls on CCE 19/20/21, both modes:
|
|
33
|
+
! results/findings-baseline/harvest-cparam-controls.cce.jsonl
|
|
34
|
+
module vpa_m
|
|
35
|
+
implicit none
|
|
36
|
+
real(8), parameter :: c(2) = [1.5d0, 2.5d0]
|
|
37
|
+
contains
|
|
38
|
+
subroutine pick(i, x)
|
|
39
|
+
!$omp declare target
|
|
40
|
+
integer, intent(in) :: i
|
|
41
|
+
real(8), intent(out) :: x
|
|
42
|
+
x = c(i)
|
|
43
|
+
end subroutine pick
|
|
44
|
+
end module vpa_m
|
|
45
|
+
|
|
46
|
+
program vpa
|
|
47
|
+
use omp_lib
|
|
48
|
+
use vpa_m
|
|
49
|
+
implicit none
|
|
50
|
+
integer :: k, bad, hk_host
|
|
51
|
+
real(8) :: r(100)
|
|
52
|
+
r = 0
|
|
53
|
+
!$omp target teams distribute parallel do map(from: r)
|
|
54
|
+
do k = 1, 100
|
|
55
|
+
call pick(1 + mod(k, 2), r(k))
|
|
56
|
+
end do
|
|
57
|
+
bad = 0
|
|
58
|
+
do k = 1, 100
|
|
59
|
+
if (r(k) /= c(1 + mod(k, 2))) bad = bad + 1
|
|
60
|
+
end do
|
|
61
|
+
hk_host = 1
|
|
62
|
+
!$omp target map(tofrom: hk_host)
|
|
63
|
+
if (.not. omp_is_initial_device()) hk_host = 0
|
|
64
|
+
!$omp end target
|
|
65
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', hk_host, ' check=', merge('pass', 'fail', bad == 0)
|
|
66
|
+
end program vpa
|
|
67
|
+
! site:
|
|
68
|
+
! title: ftn rejects a module's named-constant array referenced in a declare target routine
|
|
69
|
+
! end site
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
! # Finding (known-issues harvest): CCE does not convert a C_PTR list item of
|
|
2
|
+
! use_device_ptr: the region sees the host address
|
|
3
|
+
!
|
|
4
|
+
! - source: the NVIDIA forum topic 290317 (nvfortran dropping use_device_addr on an allocatable,
|
|
5
|
+
! TPR 36867) gave data/bench/harvest-known hk-040, which compares the use_device_addr address of an
|
|
6
|
+
! allocatable with the use_device_ptr address of a C_PTR to it; this file is the use_device_ptr
|
|
7
|
+
! half (data/reports/harvest-known/v040-ptr-print.f90)
|
|
8
|
+
! - compilers: CCE 19.0.0, 20.0.2, 21.0.3 (ftn -fopenmp), copy mode: gfx90a (Tioga, HSA_XNACK=0)
|
|
9
|
+
! and gfx942 at HSA_XNACK=0 (MI300A); at HSA_XNACK=1 on MI300A the mapped address is the host
|
|
10
|
+
! address, so the missing conversion is not visible (check=pass)
|
|
11
|
+
! - expected: seen equals mapped (the device address of tab), RESULT ... check=pass
|
|
12
|
+
! - actual: seen equals host: e.g. CCE 19 "host 48BEC0 mapped 155544200000 seen 48BEC0", the same
|
|
13
|
+
! on 20 and 21; RESULT ... check=fail. A device kernel given this pointer would read host memory.
|
|
14
|
+
! The observation does not rest on omp_get_mapped_ptr (a routine of the compiler under test):
|
|
15
|
+
! in copy mode device memory is separate, so seen = the host address is wrong whatever it returns
|
|
16
|
+
! - control (same compiler): use_device_addr(tab) on the allocatable itself gives the mapped
|
|
17
|
+
! address (data/reports/harvest-known/v040-addr.f90, check=pass on CCE 19/20/21)
|
|
18
|
+
! - other families: AFAR converts it (seen = mapped); NVHPC 25.11 and 26.9 abort at the construct
|
|
19
|
+
! (harvest/nvhpc-use-device-ptr-c-ptr-not-found.f90)
|
|
20
|
+
! This file uses omp_get_mapped_ptr as the reference: AFAR at HSA_XNACK=1 (MI300A) returns a
|
|
21
|
+
! null pointer for it, the known defect of afar-xnack1-target-is-present.f90 (nothing is
|
|
22
|
+
! recorded present in unified memory), so that cell fails for another reason
|
|
23
|
+
! - legality: "If a list item that appears in a use_device_ptr clause is of type C_PTR and
|
|
24
|
+
! points to a data entity that is mapped to the device data environment, references to the list
|
|
25
|
+
! item in the structured block ... are converted into references to a device pointer that is
|
|
26
|
+
! local to the structured block and that refers to the device address of the corresponding
|
|
27
|
+
! entity" (OpenMP 5.2 §5.4.8 p.122 l.1-5); tab is mapped by target enter data and cp =
|
|
28
|
+
! c_loc(tab); the C_PTR form is the one 5.2 keeps (the non-C_PTR form is deprecated, l.8-10).
|
|
29
|
+
! omp_get_mapped_ptr is OpenMP 5.1 (§3.8.11); the pre-run check accepts the program
|
|
30
|
+
! - evidence: results/harvest-known/main.tioga (hk-040, gate: confirmed); the MI250X probe runs' output
|
|
31
|
+
! (results/harvest-known/logs/tioga/probe.f656gDkdAd9R.log and probe.f656k2mjQdoD.log; their rows file
|
|
32
|
+
! probes.tioga.jsonl was not kept); results/harvest-known/probes.tuolumne.jsonl (MI300A, v040-ptr.f90:
|
|
33
|
+
! fail at HSA_XNACK=0, pass at 1)
|
|
34
|
+
program v040pp
|
|
35
|
+
use iso_c_binding
|
|
36
|
+
use omp_lib
|
|
37
|
+
implicit none
|
|
38
|
+
integer, parameter :: n = 1024
|
|
39
|
+
integer, allocatable, target :: tab(:)
|
|
40
|
+
type(c_ptr), target :: cp
|
|
41
|
+
type(c_ptr) :: p_ptr, p_map
|
|
42
|
+
integer :: hk_host
|
|
43
|
+
allocate(tab(n))
|
|
44
|
+
tab = 7
|
|
45
|
+
!$omp target enter data map(to: tab)
|
|
46
|
+
p_map = omp_get_mapped_ptr(c_loc(tab), omp_get_default_device())
|
|
47
|
+
cp = c_loc(tab)
|
|
48
|
+
!$omp target data use_device_ptr(cp)
|
|
49
|
+
p_ptr = cp
|
|
50
|
+
!$omp end target data
|
|
51
|
+
!$omp target exit data map(delete: tab)
|
|
52
|
+
print '(a,z0)', 'host ', transfer(c_loc(tab), 0_c_intptr_t)
|
|
53
|
+
print '(a,z0)', 'mapped ', transfer(p_map, 0_c_intptr_t)
|
|
54
|
+
print '(a,z0)', 'seen ', transfer(p_ptr, 0_c_intptr_t)
|
|
55
|
+
print '(a,z0)', 'loc(cp) ', transfer(c_loc(cp), 0_c_intptr_t)
|
|
56
|
+
hk_host = 1
|
|
57
|
+
!$omp target map(tofrom: hk_host)
|
|
58
|
+
if (.not. omp_is_initial_device()) hk_host = 0
|
|
59
|
+
!$omp end target
|
|
60
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', hk_host, ' check=', merge('pass', 'fail', c_associated(p_ptr, p_map))
|
|
61
|
+
end program v040pp
|
|
62
|
+
! site:
|
|
63
|
+
! title: use_device_ptr does not convert a C_PTR list item: the region sees the host address
|
|
64
|
+
! end site
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
! # Finding: CCE 21 ftn loses the target region's write to a module
|
|
2
|
+
! # variable in a declare target link clause that the target construct maps
|
|
3
|
+
! # tofrom (CCE 19 and 20 correct)
|
|
4
|
+
!
|
|
5
|
+
! - compilers: CCE ftn 21.0.3 and 21.0.4, -O2: this file on MI300A gfx942
|
|
6
|
+
! (HSA_XNACK 0 and 1); the two AOMP tests it comes from also on MI250X
|
|
7
|
+
! gfx90a with 21.0.3.
|
|
8
|
+
! - expected: v= 1 dev= T
|
|
9
|
+
! - actual: v= 0 dev= T (the region runs on the device; the original v keeps
|
|
10
|
+
! its value), every run, both memory modes.
|
|
11
|
+
! - rule: the link clause "does not map the list items. Instead, they are
|
|
12
|
+
! mapped according to the data-mapping rules described in Section 5.8"
|
|
13
|
+
! (5.2 §5.8.5 p.159 l.24-27), so map(tofrom: v) on the target construct
|
|
14
|
+
! maps v with a reference count of one and on exit "the original list item
|
|
15
|
+
! is updated as if the list item appeared in a from clause on a target
|
|
16
|
+
! update directive" (5.2 §5.8.3 p.154 l.3-5). OpenMP 4.5 already has the
|
|
17
|
+
! link clause.
|
|
18
|
+
! - regression: CCE 19.0.0 and 20.0.2 print v= 1 dev= T (gfx942 both modes;
|
|
19
|
+
! gfx90a).
|
|
20
|
+
! - same-compiler controls (CCE 21.0.3 and 21.0.4 correct, v= 1 dev= T):
|
|
21
|
+
! the same map on an enclosing target data construct (target data
|
|
22
|
+
! map(tofrom: v), then target without a map of v); v without the declare
|
|
23
|
+
! target directive. (With enter(v) instead of link(v) v= 0 is the expected
|
|
24
|
+
! result: the variable is present for the whole program and the exit update
|
|
25
|
+
! happens only at a reference count of one, 5.2 §5.8.3 p.154 l.3-5; AFAR and
|
|
26
|
+
! CCE 21 print v= 0, CCE 19 and 20 reject enter.)
|
|
27
|
+
! - other families: AFAR amdflang prints v= 1 dev= T (gfx942 X0 and X1,
|
|
28
|
+
! gfx90a).
|
|
29
|
+
! - harvest: dev programs h2-aomp-smoke-fort-declare-target-link-2 and
|
|
30
|
+
! h2-aomp-fortran-map-tests-even-basicer-example (data/bench/harvest2; AOMP
|
|
31
|
+
! test/smoke-fort/declare-target-link-2 and
|
|
32
|
+
! test/fortran-map-tests/even-basicer-example.f95), wrong_answer on CCE 21
|
|
33
|
+
! only, gate confirmed on gfx90a.
|
|
34
|
+
! - legality: offload.engine.prerun.check accepts it (the rules with the race
|
|
35
|
+
! rule, and the AFAR flang front end).
|
|
36
|
+
! CCE: ftn -fopenmp -O2 (module load cce/<v> craype-accel-amd-gfx942 rocm/<r>;
|
|
37
|
+
! module unload cray-mpich)
|
|
38
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
39
|
+
module m
|
|
40
|
+
implicit none
|
|
41
|
+
integer :: v = 0
|
|
42
|
+
!$omp declare target link(v)
|
|
43
|
+
end module m
|
|
44
|
+
program p
|
|
45
|
+
use m
|
|
46
|
+
use omp_lib
|
|
47
|
+
implicit none
|
|
48
|
+
logical :: dev
|
|
49
|
+
dev = .false.
|
|
50
|
+
!$omp target map(tofrom: v) map(from: dev)
|
|
51
|
+
v = 1
|
|
52
|
+
dev = .not. omp_is_initial_device()
|
|
53
|
+
!$omp end target
|
|
54
|
+
print '(a,i0,a,l1)', 'v= ', v, ' dev= ', dev
|
|
55
|
+
if (v == 1) then
|
|
56
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', merge(0, 1, dev), ' check=pass'
|
|
57
|
+
else
|
|
58
|
+
print '(a,i0,a)', 'RESULT ran_on_host=', merge(0, 1, dev), ' check=fail'
|
|
59
|
+
end if
|
|
60
|
+
end program p
|
|
61
|
+
! site:
|
|
62
|
+
! title: ftn 21 loses a target region's write to a declare target link module variable mapped tofrom
|
|
63
|
+
! end site
|