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,52 @@
|
|
|
1
|
+
/* # Finding: CCE craycc loses lastprivate on a distribute construct in a
|
|
2
|
+
# target region, even with an explicit map (C)
|
|
3
|
+
|
|
4
|
+
- compilers: CCE craycc 19.0.0, 20.0.2, 21.0.3, MI300A (gfx942), HSA_XNACK 1 and 0, -O2
|
|
5
|
+
- expected: l= 2560 dev= 1. lastprivate on distribute gives the original l the value of the
|
|
6
|
+
sequentially last iteration (i = 64: 64 * 40) (5.2 §5.4.5; §11.6 distribute accepts
|
|
7
|
+
lastprivate); map(tofrom: l) on the target leaf (§17.2 p.340 l.21-30 applies lastprivate to
|
|
8
|
+
the distribute leaf and map to the target leaf) brings it back
|
|
9
|
+
- actual: l= 0 dev= 1 on all three releases and both XNACK settings, in both forms:
|
|
10
|
+
this file target teams distribute lastprivate(l) map(tofrom: l)
|
|
11
|
+
lp-c-tdist-split.c target map(tofrom: l, dev) { teams distribute lastprivate(l) }
|
|
12
|
+
(data/reports/fuzz-stress-audit/; the audit saw the first form fail on CCE 19 and 21)
|
|
13
|
+
- in-program control (lp-c-tdist-split.c): dev is mapped tofrom in the same map clause as l and
|
|
14
|
+
written inside the same distribute loop (at i = 1); it comes back as 1 while l comes back as 0,
|
|
15
|
+
which rules out "a scalar map in a distribute region" as the cause
|
|
16
|
+
- same-compiler control: lp-c-tdist-copy.c, the same target teams distribute loop without
|
|
17
|
+
lastprivate, where the last iteration stores its value in a mapped array: l= 2560 on CCE
|
|
18
|
+
19/20/21, both XNACK settings. A reduction(max: l) on target teams distribute parallel for
|
|
19
|
+
(lp-c-tdpf-red.c) gives 2560 too
|
|
20
|
+
- other families: AFAR amdclang (both forms, both XNACK settings) and NVHPC nvc 25.11 / 26.9
|
|
21
|
+
(A100, separate and managed) give 2560 on both forms
|
|
22
|
+
- not the known finding: cce-c-parallel-for-in-target.c covers lastprivate on a parallel for
|
|
23
|
+
nested in a target region (CCE also gives 0 on target parallel for lastprivate(l)
|
|
24
|
+
map(tofrom: l), lp-c-tpfor-map.c, which that finding explains). This program has no parallel
|
|
25
|
+
for: the loss is on distribute. On target teams distribute parallel for (candidate 2b,
|
|
26
|
+
r2-lastprivate-combined-control.c) both leaves carry lastprivate, so both defects apply
|
|
27
|
+
- legality: legal by reading: the loop variable is private; only the lastprivate item l is
|
|
28
|
+
written in the loop; dev is written by the initial thread of the second target region. The
|
|
29
|
+
explicit map is legal: 5.2 §13.8 p.286 l.29-30 restricts only data-sharing clauses applied to
|
|
30
|
+
the target leaf, and the 5.0 §2.19.7.1 restriction (p.321 l.25-26) exempts combined constructs
|
|
31
|
+
- evidence: results/stress/audit/runs-fix2.jsonl (tools/jobs/run_stress_fix2.sh a) and
|
|
32
|
+
runs-nvhpc-fix2.jsonl (tools/jobs/run_wingtip_fix2.sh); the confirmer was not run on it
|
|
33
|
+
- build: craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa
|
|
34
|
+
-march=gfx942 -O2 (offload/engine/toolchains.py C_FLAGS); the program is the audit file as run
|
|
35
|
+
(out[] is unused here) */
|
|
36
|
+
#include <stdio.h>
|
|
37
|
+
#include <omp.h>
|
|
38
|
+
int main(void) {
|
|
39
|
+
long long l = 0, out[1] = {0};
|
|
40
|
+
int dev = -1;
|
|
41
|
+
#pragma omp target teams distribute lastprivate(l) map(tofrom: l)
|
|
42
|
+
for (int i = 1; i <= 64; i++)
|
|
43
|
+
l = (long long) i * 40;
|
|
44
|
+
#pragma omp target map(tofrom: dev)
|
|
45
|
+
dev = omp_is_initial_device() ? 0 : 1;
|
|
46
|
+
printf("l= %lld dev= %d\n", l, dev);
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
// site:
|
|
50
|
+
// title: craycc/ftn: lastprivate on distribute in a target region loses the final value, even with an explicit map
|
|
51
|
+
// control: ../vendor/checks/src/cce/control/cce-c-distribute-lastprivate-lost-control.c reduction(max: l) instead of lastprivate(l)
|
|
52
|
+
// end site
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// # Finding: craycc -flto drops the OpenMP offload code
|
|
2
|
+
//
|
|
3
|
+
// - compilers: CCE craycc 19.0.0, 20.0.2, 21.0.3 (C), MI300A (gfx942) and MI250X (gfx90a)
|
|
4
|
+
// - build: the catalog's CCE C recipe (offload/engine/toolchains.py C_FLAGS) plus `-O2 -flto`;
|
|
5
|
+
// without -flto the same file is correct on every CCE release; AFAR amdclang -flto is correct
|
|
6
|
+
// - expected: sum= 2016 dev= 1 (a target teams distribute loop fills a[i] = i on the device)
|
|
7
|
+
// - build flags: -O2 -flto
|
|
8
|
+
// (read by the confirmer, offload.engine.confirm.programs.file_ref, which adds them to every
|
|
9
|
+
// build of this reproducer; its -O0 control keeps -flto)
|
|
10
|
+
// - actual (OMP_TARGET_OFFLOAD=mandatory): the program builds, then exits 255 with "ACC: OpenMP
|
|
11
|
+
// offload failed when OMP_TARGET_OFFLOAD=MANDATORY at address 0x200a...". Observed cells:
|
|
12
|
+
// MI300A HSA_XNACK 1 (CCE 19/20/21, audit runs.jsonl), MI250X HSA_XNACK 0 (Tioga, CCE 19/20/21,
|
|
13
|
+
// runs-tioga.jsonl), and MI300A HSA_XNACK 0 (CCE 19 and 21; CCE 19/20/21,
|
|
14
|
+
// runs-fix2.jsonl). Under
|
|
15
|
+
// OMP_TARGET_OFFLOAD=default the -flto binary runs the region on the host: "sum= 2016 dev= 0".
|
|
16
|
+
// - the offload code is absent (readelf/nm of the executables, CCE 19.0.0 and 21.0.3,
|
|
17
|
+
// MI300A): without -flto the binary has a cray_omp_offloading_entries section, the
|
|
18
|
+
// .offloading.entry.__omp_offloading_* symbols and 7 strings naming amdgcn/gfx942; with -O2 -flto
|
|
19
|
+
// the entries section and the entry symbols are gone (only the .region_id symbols remain) and no
|
|
20
|
+
// amdgcn/gfx942 string is left. AFAR amdclang -flto keeps .llvm.offloading and its entries and
|
|
21
|
+
// runs on the device. Not run: the non--flto control on MI250X.
|
|
22
|
+
// - evidence: results/stress/audit/runs.jsonl and runs-tioga.jsonl (tools/campaigns/stress_audit.py on
|
|
23
|
+
// data/reports/fuzz-stress-audit/r8-craycc-flto.c); the audit rerun's runs are committed as
|
|
24
|
+
// data/reports/fuzz-stress-audit/rereview-1-lto.jsonl. In the stress sweeps every C program of
|
|
25
|
+
// the `lto` variant failed the same way (s1-var, 3 CCE releases x 3 layouts), and every other
|
|
26
|
+
// variant agreed
|
|
27
|
+
// - confirmer (which carries the "build flags" line above into every build): on CCE 19 in
|
|
28
|
+
// both modes (`tools/confirm.py case <this file> --toolchain cce19 --mode unified|copy --expected
|
|
29
|
+
// "sum= 2016 dev= 1" --run`, 2026-10-25) the verdict is needs_human (R22-expected-weak): CCE 19, 20
|
|
30
|
+
// and 21 built with -O2 -flto exit 255 on every run and AFAR amdclang -O2 -flto prints the expected
|
|
31
|
+
// value, but the expected value rests on the stated value alone (no sequential elision of this C
|
|
32
|
+
// program), which the rules call provisional. Before the confirmer could not add -flto
|
|
33
|
+
// (data/reports/fuzz-stress.md). The installed CCE documentation has no craycc page
|
|
34
|
+
// and does not say that -flto is unsupported with offload; if HPE documents that, this is a
|
|
35
|
+
// documented limitation, not a defect.
|
|
36
|
+
// - legality: legal C11 / OpenMP 5.0 by reading: a[0:64] is mapped from and each iteration writes
|
|
37
|
+
// its own element; dev is mapped tofrom and written by the one initial thread of a target region
|
|
38
|
+
// (amdclang -fopenmp -fsyntax-only, not of the family under test, accepts it)
|
|
39
|
+
/* Audit: craycc -flto with OpenMP offload. A target teams
|
|
40
|
+
distribute loop; built with -flto it must still run on the device.
|
|
41
|
+
Expected (with and without -flto): sum= 2016 dev= 1 */
|
|
42
|
+
#include <stdio.h>
|
|
43
|
+
#include <omp.h>
|
|
44
|
+
int main(void) {
|
|
45
|
+
long long a[64], sum = 0;
|
|
46
|
+
int dev = -1;
|
|
47
|
+
#pragma omp target teams distribute map(from: a[0:64])
|
|
48
|
+
for (int i = 0; i < 64; i++)
|
|
49
|
+
a[i] = i;
|
|
50
|
+
for (int i = 0; i < 64; i++)
|
|
51
|
+
sum += a[i];
|
|
52
|
+
#pragma omp target map(tofrom: dev)
|
|
53
|
+
dev = omp_is_initial_device() ? 0 : 1;
|
|
54
|
+
printf("sum= %lld dev= %d\n", sum, dev);
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
// site:
|
|
58
|
+
// title: craycc -flto: the offload code is dropped; the program fails under OMP_TARGET_OFFLOAD=mandatory
|
|
59
|
+
// control: ../vendor/checks/src/cce/control/cce-c-flto-offload-dropped-control.c built without -flto (-O2)
|
|
60
|
+
// end site
|
|
61
|
+
// spec (requirement): a target construct includes an executable region that is executed on a device, and with
|
|
62
|
+
// OMP_TARGET_OFFLOAD=mandatory a construct that cannot use its device is an error instead of a host fallback. The -flto option
|
|
63
|
+
// is a vendor build option that OpenMP does not mention, so there is no OpenMP text on link-time optimization itself; the
|
|
64
|
+
// nearest normative text is the device execution of the target region.
|
|
65
|
+
// "The target construct provides a superset of the functionality provided by the target data directive, except for the
|
|
66
|
+
// use_device_ptr and use_device_addr clauses. The functionality added to the target directive is the inclusion of an executable
|
|
67
|
+
// region to be executed on a device." (5.2 §13.8 p.284 l.11-13)
|
|
68
|
+
// "The mandatory value specifies that the effect of any device construct or device memory routine that uses a device that is
|
|
69
|
+
// unavailable or not supported by the implementation, or uses a non-conforming device number, is as if the omp_invalid_device
|
|
70
|
+
// device number was used." (5.2 §21.2.8 p.610 l.28-30)
|
|
71
|
+
// spec (this program): the target teams distribute region must still execute on the device in a program built with -flto; the
|
|
72
|
+
// binary has lost its offload entries, so OMP_TARGET_OFFLOAD=mandatory aborts (the default setting silently runs the region on
|
|
73
|
+
// the host, dev= 0).
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
! # Finding: CCE ftn aborts when an optimizer message record has "-1" at its 1024th character
|
|
2
|
+
!
|
|
3
|
+
! - compilers: CCE ftn 17.0.1, 18.0.1, 19.0.0, 20.0.0, 20.0.2, 21.0.0, 21.0.3, 21.0.4, the same on
|
|
4
|
+
! Tuolumne (craype-accel-amd-gfx942) and Tioga (gfx90a), 2026-10-25; the defect is on the host side
|
|
5
|
+
! - build: save this file as stress.f90 in the directory
|
|
6
|
+
! A = /tmp/cce-cif/ + 202 letters a + -1aa (219 characters; one directory below /tmp/cce-cif)
|
|
7
|
+
! and run `ftn -fopenmp -O2 -c stress.f90` there (the pinned prelude: module load cce/<v>
|
|
8
|
+
! craype-accel-amd-gfx942 rocm/<r>; module unload cray-mpich). tools/jobs/run_ftn_cif_split.sh repro does it.
|
|
9
|
+
! - expected: the compile succeeds (exit 0) and prints the program's 3 messages (ftn-878 warnings: glob is
|
|
10
|
+
! use associated twice in c2, c1 and the main program). Legal Fortran 2008 with OpenMP 5.0 directives,
|
|
11
|
+
! by reading: `!$omp declare target (extended-list)` (5.0 §2.12.7 p.181 l.15) gives gv a device copy
|
|
12
|
+
! ("initialized once ... never removed", p.182 l.19-22); `!$omp declare target` without clauses in a
|
|
13
|
+
! function makes that function a device procedure ("an implicit extended-list ... of one item is formed
|
|
14
|
+
! from the name of the enclosing ... function subprogram", p.183 l.21-23); `target update to(gv)`
|
|
15
|
+
! (§2.12.6); each iteration writes its own out(i). "An implementation of the OpenMP API is compliant if
|
|
16
|
+
! and only if it compiles and executes all other conforming programs" (5.0 §1.6 p.31 l.11-12). A run
|
|
17
|
+
! (not part of this finding) prints sum=145702.
|
|
18
|
+
! - actual: every release above: SIGABRT (exit 6) with "free(): invalid pointer" (17.0.1: "double free or
|
|
19
|
+
! corruption (out)"), no messages, no object. Also at -O3 and when linking; not at -O0 (no optimizer
|
|
20
|
+
! messages). AFAR amdflang compiles the file in A (-fopenmp --offload-arch=gfx942 -O2 -c).
|
|
21
|
+
! - control: the same file in the directory of the same length with -2aa in place of -1aa compiles on every
|
|
22
|
+
! release with its 3 messages (the check case's control,
|
|
23
|
+
! + ../vendor/checks/src/cce/control/cce-ftn-cif-record-split-abort-control.f90).
|
|
24
|
+
! What matters is the absolute path of the source file: compiled from another working directory with the
|
|
25
|
+
! source named by its path in A it aborts; compiled in A with the source taken from another directory it
|
|
26
|
+
! does not; -o, -J, PWD and TMPDIR do not matter.
|
|
27
|
+
! - mechanism (CCE 19.0.0 binaries, gdb, valgrind, strace): optcg's m_cif_merge_messages (and ftnfe's
|
|
28
|
+
! finish_msgs_and_cif) copy the compiler-information records into the CIF the driver prints messages
|
|
29
|
+
! from with `fgets(buf, 1024)` per chunk, stopping at the first chunk whose strtol value is -1 (the end
|
|
30
|
+
! record). IPA's message 'Tree "g2" was flattened.#"g2"(<path>/stress.f90:22) "g3"(<path>/stress.f90:10)'
|
|
31
|
+
! carries the absolute source path, twice per record, so in A the record is longer than 1023 characters
|
|
32
|
+
! and its chunk at offset 1023 starts with "-1aa/stress.f90...": the copy stops there and the CIF is cut
|
|
33
|
+
! mid-record. The driver (Cif_Cifconv, write_unit) then calls free() on a pointer 984 bytes into a
|
|
34
|
+
! 16 KiB block of its CIF arena (valgrind, the tu12 program: "Invalid free"), and glibc aborts.
|
|
35
|
+
! A cut in another record can instead give exit 0 with every later message silently dropped.
|
|
36
|
+
! - the rule, verified on 1,749 compiles (CCE 19 for all; 20.0.2 and 21.0.3 for the tu12 set, identical):
|
|
37
|
+
! in every compile where some record line, with the path substituted, has "-1" not followed by a digit at
|
|
38
|
+
! offset 1023 (or 2046, ...), the compile aborted or printed fewer messages than the control; in every
|
|
39
|
+
! other compile it printed all of them; no abort without such a split (tools/campaigns/ftn_cif_split.py,
|
|
40
|
+
! data/reports/fuzz-stress-audit/ftnpath/). Whether a cut aborts depends on where the CIF is cut (here: in
|
|
41
|
+
! g2's flattening record, 42 of 42 designed directories of 219-260 characters abort).
|
|
42
|
+
! - origin: the stress campaign's "path-dependent" ftn abort (data/reports/fuzz-stress.md F2): tu.plain-omp-12
|
|
43
|
+
! in /tmp/<user>-stress/st-tu.plain-omp-12-1-abcd1234 has "12-1-abcd" in its directory name, and IPA's
|
|
44
|
+
! message for k0001_g7 puts that "-1" at offset 1023 (data/reports/fuzz-stress-audit/ftn-path-abort-tu12.f90)
|
|
45
|
+
module glob
|
|
46
|
+
implicit none
|
|
47
|
+
integer(8) :: gv = 0
|
|
48
|
+
!$omp declare target(gv)
|
|
49
|
+
end module glob
|
|
50
|
+
module c3
|
|
51
|
+
use glob
|
|
52
|
+
implicit none
|
|
53
|
+
contains
|
|
54
|
+
function g3(x) result(r)
|
|
55
|
+
!$omp declare target
|
|
56
|
+
integer(8), intent(in) :: x
|
|
57
|
+
integer(8) :: r
|
|
58
|
+
r = x + gv
|
|
59
|
+
end function g3
|
|
60
|
+
end module c3
|
|
61
|
+
module c2
|
|
62
|
+
use glob
|
|
63
|
+
use c3
|
|
64
|
+
implicit none
|
|
65
|
+
contains
|
|
66
|
+
function g2(x) result(r)
|
|
67
|
+
!$omp declare target
|
|
68
|
+
integer(8), intent(in) :: x
|
|
69
|
+
integer(8) :: r
|
|
70
|
+
r = g3(mod(x * 5, 1013_8) + 2) + 2
|
|
71
|
+
end function g2
|
|
72
|
+
end module c2
|
|
73
|
+
module c1
|
|
74
|
+
use glob
|
|
75
|
+
use c2
|
|
76
|
+
implicit none
|
|
77
|
+
contains
|
|
78
|
+
function g1(x) result(r)
|
|
79
|
+
!$omp declare target
|
|
80
|
+
integer(8), intent(in) :: x
|
|
81
|
+
integer(8) :: r
|
|
82
|
+
r = g2(mod(x * 5, 1013_8) + 1) + 1
|
|
83
|
+
end function g1
|
|
84
|
+
end module c1
|
|
85
|
+
program chain
|
|
86
|
+
use glob
|
|
87
|
+
use c1
|
|
88
|
+
implicit none
|
|
89
|
+
integer(8) :: out(256), s
|
|
90
|
+
integer :: i
|
|
91
|
+
gv = 77
|
|
92
|
+
!$omp target update to(gv)
|
|
93
|
+
out = 0
|
|
94
|
+
!$omp target teams distribute parallel do map(tofrom: out)
|
|
95
|
+
do i = 1, 256
|
|
96
|
+
out(i) = g1(int(i, 8))
|
|
97
|
+
end do
|
|
98
|
+
!$omp end target teams distribute parallel do
|
|
99
|
+
s = sum(out)
|
|
100
|
+
print '(a,i0)', 'sum=', s
|
|
101
|
+
end program chain
|
|
102
|
+
! site:
|
|
103
|
+
! title: ftn: compiler aborts (free(): invalid pointer) when an optimizer message record has "-1" at its 1024th character
|
|
104
|
+
! + (path-dependent)
|
|
105
|
+
! control: ../vendor/checks/src/cce/control/cce-ftn-cif-record-split-abort-control.f90 the same file in a directory of the same
|
|
106
|
+
! + length
|
|
107
|
+
! + with -2
|
|
108
|
+
! + in place of -1
|
|
109
|
+
! end site
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
! CCE 19, 20, 21: lastprivate on a composite target teams distribute
|
|
2
|
+
! parallel do is wrong, and varies between runs, when the parallel leaf
|
|
3
|
+
! runs with num_threads(2) -- or with if(parallel: .false.) and no
|
|
4
|
+
! num_threads. Neither collapse nor simd is needed (fix:
|
|
5
|
+
! this 10-line program replaces the collapse(2)/simd/num_threads(32)
|
|
6
|
+
! reproducer reduced from the 14-clause stress program; the
|
|
7
|
+
! file keeps its name so its links stay).
|
|
8
|
+
! Spec: lp is assigned in every iteration, so "the value of each new list
|
|
9
|
+
! item from the sequentially last iteration of the associated loops ... is
|
|
10
|
+
! assigned to the original list item" (OpenMP 5.2 §5.4.5 p.115 l.12-16),
|
|
11
|
+
! and on a combined target construct the list item is also map(tofrom)
|
|
12
|
+
! (§17.2 p.340 l.27-30). Race-free: i is the loop's iteration variable.
|
|
13
|
+
! Expected: lp= 200
|
|
14
|
+
! Observed (Tuolumne MI300A, -O2, OMP_TARGET_OFFLOAD=mandatory, 10 runs per
|
|
15
|
+
! cell, 2026-10-26; data/evidence/gate_probe/logs/lastprivate_simdred.txt, programs
|
|
16
|
+
! in data/evidence/gate_probe/lastprivate/):
|
|
17
|
+
! - this program (nt2): CCE 19, 20 and 21 at HSA_XNACK 0 and 1: lp= 0, 61,
|
|
18
|
+
! 125 or 189, varying from run to run (200 in none of the 60 runs; this
|
|
19
|
+
! file as committed, which drops nt2's unused lpar: the same, 0 of 60,
|
|
20
|
+
! data/evidence/gate_probe/logs/reduce.txt lpfind);
|
|
21
|
+
! - if(parallel: lpar) with lpar = .false. instead of num_threads(2)
|
|
22
|
+
! (ifpar): the same values on all six cells;
|
|
23
|
+
! - with collapse(2) (collapsent2) or simd (simdnt2) added: the same;
|
|
24
|
+
! - control, the same directive without num_threads and if (nont): lp= 200
|
|
25
|
+
! in 60 of 60 runs on CCE 19/20/21, both modes.
|
|
26
|
+
! Mechanism: CCE 19/20/21 warn at compile time, on this file
|
|
27
|
+
! and on the if(parallel: .false.) form but not on the control:
|
|
28
|
+
! ftn-7256 ftn: WARNING P, File = lp.f90, Line = <the directive>
|
|
29
|
+
! An OpenMP parallel construct in a target region is limited to a single
|
|
30
|
+
! thread.
|
|
31
|
+
! (data/evidence/gate_probe/logs/lastprivate_compile.txt). Both triggers make CCE
|
|
32
|
+
! run the parallel leaf with one thread; so the defect is that lastprivate
|
|
33
|
+
! is lost when CCE serializes the parallel leaf of a composite distribute
|
|
34
|
+
! parallel do. The warning says nothing about lastprivate: it is not a
|
|
35
|
+
! diagnostic of the wrong value, and one thread must still leave lp = 200.
|
|
36
|
+
! The earlier reproducer (num_threads(32) on target teams distribute
|
|
37
|
+
! parallel do simd collapse(2) over 16 x 8 iterations: lp= 0, 20, 64 or
|
|
38
|
+
! 100, correct with num_teams(1) or num_teams(3),
|
|
39
|
+
! data/reports/fuzz-stress-audit/r7-*.f90) is this defect; so are the
|
|
40
|
+
! lastprivate cells of the reproduction gate's review queue
|
|
41
|
+
! (data/reports/gate-queue.md: fuzz and evidence programs with
|
|
42
|
+
! lastprivate on distribute parallel do with num_threads(2..8) or
|
|
43
|
+
! if(parallel: .false.), and the 14-clause stress program clauses-omp-16).
|
|
44
|
+
! Another family: AFAR amdflang gives lp= 200 in 20 of 20 runs (XNACK 1 and
|
|
45
|
+
! 0) on the simd form (simdnt2); on this form it stops with "not yet
|
|
46
|
+
! implemented: lastprivate clause in constructs other than
|
|
47
|
+
! simd/worksharing-loop/taskloop" (a compile failure, not a value).
|
|
48
|
+
! NVHPC documents lastprivate on distribute as unsupported (HPC Compilers
|
|
49
|
+
! User's Guide 25.11 §7.4, 2.9.4), so it is no witness here.
|
|
50
|
+
! CCE: ftn -fopenmp -O2 (module load cce/<v> craype-accel-amd-gfx942 rocm)
|
|
51
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory HSA_XNACK=0 (or 1) ./a.out
|
|
52
|
+
program p
|
|
53
|
+
implicit none
|
|
54
|
+
integer :: i, lp
|
|
55
|
+
lp = 0
|
|
56
|
+
!$omp target teams distribute parallel do lastprivate(lp) num_threads(2)
|
|
57
|
+
do i = 1, 200
|
|
58
|
+
lp = i
|
|
59
|
+
end do
|
|
60
|
+
!$omp end target teams distribute parallel do
|
|
61
|
+
print '(a,i0)', 'lp= ', lp
|
|
62
|
+
end program p
|
|
63
|
+
! site:
|
|
64
|
+
! title: ftn: lastprivate on target teams distribute parallel do simd collapse(2) with num_threads gives a varying wrong value
|
|
65
|
+
! control: ../vendor/checks/src/cce/control/cce-lastprivate-num-threads-collapse-simd-control.f90 num_threads(32) removed
|
|
66
|
+
! end site
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
! # Draft finding: data/reports/fuzz-stress-audit/r6-teams-reduction-65536.f90 on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: copy; opt: -O2
|
|
5
|
+
! - program: file data/reports/fuzz-stress-audit/r6-teams-reduction-65536.f90 (f90, version 52, sha256 3713620f5e7f1159)
|
|
6
|
+
! - expected: s= 8455717314 (trusted; elision + metamorphic + model)
|
|
7
|
+
! - actual: wrong_answer s= 626787243 (expected s= 8455717314)
|
|
8
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
9
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
10
|
+
! expected value
|
|
11
|
+
! - reason: expected trusted s= 8455717314 (elision + metamorphic + model): elision + metamorphic + model agree; witnesses:
|
|
12
|
+
! afar/gfx942/copy, cce21/gfx942/copy, elision
|
|
13
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
14
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
15
|
+
! (rulings.md)
|
|
16
|
+
! - legality: legal: read against the spec (audit and re-review); checked by scope, offload.engine.rules, flang (no checker of
|
|
17
|
+
! the family under test)
|
|
18
|
+
! - witnesses: afar/gfx942/copy, cce21/gfx942/copy, elision
|
|
19
|
+
! - withdrawn: none
|
|
20
|
+
!
|
|
21
|
+
! Audit, candidate 6: a teams reduction over 2**24 iterations with
|
|
22
|
+
! num_teams(65536). All variables are integer(8); the sum is 8455717314 (more
|
|
23
|
+
! than 2**32). Expected: s= 8455717314
|
|
24
|
+
program teams_reduction
|
|
25
|
+
implicit none
|
|
26
|
+
integer(8) :: i, s, nn
|
|
27
|
+
nn = 16777216_8
|
|
28
|
+
s = 0
|
|
29
|
+
!$omp target teams distribute parallel do num_teams(65536) thread_limit(256) reduction(+: s)
|
|
30
|
+
do i = 1, nn
|
|
31
|
+
s = s + mod(i * 715_8, 1009_8)
|
|
32
|
+
end do
|
|
33
|
+
!$omp end target teams distribute parallel do
|
|
34
|
+
print '(a,i0)', 's= ', s
|
|
35
|
+
end program teams_reduction
|
|
36
|
+
! spec (requirement): a reduction clause on a teams construct gives the initial task of every team a private copy of the list
|
|
37
|
+
! item, and at the end of the region the original list item is combined with the final value of every private copy, whatever
|
|
38
|
+
! number of teams (within the num_teams bounds) was created, so the sum does not depend on num_teams.
|
|
39
|
+
! "For the teams construct, one or more private copies of each list item are created for the initial task of each team in the
|
|
40
|
+
! league, as if the private clause had been used. For the loop construct, private copies are created and used in the construct
|
|
41
|
+
! according to the description and restrictions in Section 5.3. At the end of a region that corresponds to a construct for which
|
|
42
|
+
! the reduction clause was specified, the original list item is updated by combining its original value with the final value of
|
|
43
|
+
! each of the private copies, using the combiner of the specified reduction-identifier." (5.2 §5.5.8 p.135 l.4-10)
|
|
44
|
+
! "The num_teams clause specifies the bounds on the number of teams created by the construct on which it appears. lower-bound
|
|
45
|
+
! specifies the lower bound and upper-bound specifies the upper bound on the number of teams requested. If lower-bound is not
|
|
46
|
+
! specified, the effect is as if lower-bound is specified as equal to upper-bound. The number of teams created is implementation
|
|
47
|
+
! defined, but it will be greater than or equal to the lower bound and less than or equal to the upper bound." (5.2 §10.2.1
|
|
48
|
+
! p.233 l.10-15)
|
|
49
|
+
! spec (this program): the target teams distribute parallel do reduction(+: s) with num_teams(65536) must give the same sum as
|
|
50
|
+
! any other legal team count (8455717314); CCE 19 returns a different value, while num_teams(8192) is correct.
|
|
51
|
+
! site:
|
|
52
|
+
! title: A reduction on target teams distribute parallel do with num_teams(65536) gives a wrong sum (8192 teams is correct)
|
|
53
|
+
! control: ../vendor/checks/src/cce/control/cce-teams-reduction-many-teams-wrap-control.f90 num_teams(8192) instead of
|
|
54
|
+
! + num_teams(65536)
|
|
55
|
+
! end site
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
! # Draft finding: data/reports/fuzz-stress-audit/r4-declare-target-scalar-control.f90 on cce21
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce21
|
|
4
|
+
! - toolchain: cce21; arch: gfx942; machine: tuolumne; memory mode: copy; opt: -O2
|
|
5
|
+
! - program: file data/reports/fuzz-stress-audit/r4-declare-target-scalar-control.f90 (f90, version 52, sha256 28c79fb1fd5b8dc7)
|
|
6
|
+
! - expected: g= 203 dev= 1 (trusted; metamorphic + model)
|
|
7
|
+
! - actual: wrong_answer g= 101 dev= 1 (expected g= 203 dev= 1)
|
|
8
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
9
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
10
|
+
! expected value
|
|
11
|
+
! - reason: expected trusted g= 203 dev= 1 (metamorphic + model): metamorphic + model agree; witnesses: afar/gfx942/copy,
|
|
12
|
+
! cce19/gfx942/copy, cce20/gfx942/copy
|
|
13
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
14
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
15
|
+
! (rulings.md)
|
|
16
|
+
! - legality: legal: read against the spec (audit and re-review); checked by scope, offload.engine.rules, flang (no checker of
|
|
17
|
+
! the family under test)
|
|
18
|
+
! - witnesses: afar/gfx942/copy, cce19/gfx942/copy, cce20/gfx942/copy
|
|
19
|
+
! - withdrawn: none
|
|
20
|
+
!
|
|
21
|
+
! Audit, candidate 4, CONTROL (explicit map(tofrom: g)) of a declare target module scalar.
|
|
22
|
+
! Basis (N3): g appears in an enter clause (the 5.0 declare target(list) form), so its
|
|
23
|
+
! corresponding list item "is never removed from those device data environments as if its reference count
|
|
24
|
+
! was initialized to positive infinity" (5.2 §5.8.4 p.159 l.10-14; 5.0 §2.12.7 p.182 l.19-22). On entry to the
|
|
25
|
+
! target region the storage is present and its count is not one, so no new list item is created and no
|
|
26
|
+
! "to" transfer happens (5.2 §5.8.3 p.153 l.1-17, steps 1-3); on exit the count is not one, so no "from"
|
|
27
|
+
! transfer happens and an infinite count is not decremented (p.153 l.31-35, p.154 l.1-11). The region therefore reads and
|
|
28
|
+
! writes the declare target copy (101 -> 203), and "target update from(g)" returns 203. This is the same
|
|
29
|
+
! result as the implicit form (5.2 §5.8.1 p.148 l.9-11 treats it "as if" this map clause appeared). No
|
|
30
|
+
! restriction forbids an explicit map of a declare target variable (5.2 §5.8.3 p.156-157, §7.8 p.205,
|
|
31
|
+
! §7.8.1 p.206, §13.8 p.286-287). Expected: g= 203 dev= 1. CCE 21 without the map (r4-declare-target-
|
|
32
|
+
! scalar.f90) gives 203; CCE 19/20, AFAR and NVHPC give 203 with the map.
|
|
33
|
+
module dt_scalar_m
|
|
34
|
+
implicit none
|
|
35
|
+
integer(8) :: g
|
|
36
|
+
!$omp declare target(g)
|
|
37
|
+
end module dt_scalar_m
|
|
38
|
+
program declare_target_scalar
|
|
39
|
+
use omp_lib
|
|
40
|
+
use dt_scalar_m
|
|
41
|
+
implicit none
|
|
42
|
+
integer :: dev
|
|
43
|
+
g = 101
|
|
44
|
+
dev = -1
|
|
45
|
+
!$omp target update to(g)
|
|
46
|
+
!$omp target map(tofrom: dev, g)
|
|
47
|
+
g = 2 * g + 1
|
|
48
|
+
dev = merge(0, 1, omp_is_initial_device())
|
|
49
|
+
!$omp end target
|
|
50
|
+
!$omp target update from(g)
|
|
51
|
+
print '(a,i0,a,i0)', 'g= ', g, ' dev= ', dev
|
|
52
|
+
end program declare_target_scalar
|
|
53
|
+
! site:
|
|
54
|
+
! title: ftn: write to a declare target module scalar named in map(tofrom:) is lost
|
|
55
|
+
! control: ../vendor/checks/src/cce/control/cce21-declare-target-scalar-map-write-lost-control.f90 g not in the map clause
|
|
56
|
+
! + (implicitly
|
|
57
|
+
! + tofrom)
|
|
58
|
+
! end site
|
offload/_root/data/findings/stress/controls/gcc-declare-target-allocatable-component-control.f90
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
! Control of stress/gcc-declare-target-allocatable-component-ice.f90: the same program without the declare target
|
|
2
|
+
! directive (compiles; correct on gcc_g90 and gcc_sm80).
|
|
3
|
+
module dt_m
|
|
4
|
+
implicit none
|
|
5
|
+
type :: holder
|
|
6
|
+
integer, allocatable :: v1(:)
|
|
7
|
+
end type holder
|
|
8
|
+
type(holder) :: gq
|
|
9
|
+
end module dt_m
|
|
10
|
+
|
|
11
|
+
program declared_alloc_component
|
|
12
|
+
use omp_lib, only: omp_is_initial_device
|
|
13
|
+
use dt_m
|
|
14
|
+
implicit none
|
|
15
|
+
integer :: out(64), i, host_flag
|
|
16
|
+
allocate(gq%v1(64))
|
|
17
|
+
gq%v1 = [(3*i, i = 1, 64)]
|
|
18
|
+
!$omp target enter data map(to: gq%v1)
|
|
19
|
+
out = 0
|
|
20
|
+
host_flag = 1
|
|
21
|
+
!$omp target teams distribute parallel do map(tofrom: out, host_flag)
|
|
22
|
+
do i = 1, 64
|
|
23
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
24
|
+
out(i) = gq%v1(i) + 1
|
|
25
|
+
end do
|
|
26
|
+
!$omp target exit data map(delete: gq%v1)
|
|
27
|
+
print '(a,i0)', 'sum= ', sum(out)
|
|
28
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', sum(out) == 3*64*65/2 + 64)
|
|
29
|
+
end program declared_alloc_component
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
! # Finding (GCC 16.2, stress sweeps): a declare target module variable of a derived type with an allocatable component in a
|
|
2
|
+
! target region: internal compiler error in lower_omp_target
|
|
3
|
+
!
|
|
4
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0, NVIDIA A100 sm_80, wingtip);
|
|
5
|
+
! separate memory only; -O2
|
|
6
|
+
! - build: gfortran -fopenmp -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
7
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
! - failure: ice: internal compiler error: in lower_omp_target
|
|
9
|
+
! - observed: `internal compiler error: in lower_omp_target, at omp-low.cc:13204` ("during GIMPLE pass: omplower") at the target
|
|
10
|
+
! teams distribute parallel do directive, on both targets (the host compiler fails before any offload code is made)
|
|
11
|
+
! - expected: compiles; prints `sum= 6304` and `RESULT ran_on_host=0 check=pass`
|
|
12
|
+
! - rule: a variable may appear in a declare target directive in the specification part of a module ("If an extended list item is a
|
|
13
|
+
! variable name, the directive must appear in the specification part of a subroutine subprogram, function subprogram, program or
|
|
14
|
+
! module", 5.2 §7.8.1 p.206 l.27-28); its allocatable component is mapped by the enter data construct.
|
|
15
|
+
! - same-compiler control (compiles; correct, gcc_sm80: mandatory pass 5 of 5; unset pass 5 of 5; gcc_g90: mandatory pass 5 of 5;
|
|
16
|
+
! unset pass 5 of 5 (results/parity/<machine>/<tc>/probes.jsonl)): the same program without the declare target directive
|
|
17
|
+
! (controls/gcc-declare-target-allocatable-component-control.f90).
|
|
18
|
+
! - other families: AFAR, CCE 19/20/21 and NVHPC 25.11/26.9 run the stress programs (template.declared_alloc-omp-8/159/400-1, eight
|
|
19
|
+
! allocatable components) correctly in copy mode (results/stress/s1-g5, nv1-omp). The site's finding matrix runs this file on
|
|
20
|
+
! every compiler.
|
|
21
|
+
! - stress programs (6 cells (3 gcc_g90, 3 gcc_sm80); gate: confirmed 6; the stress kind has no confirmer path):
|
|
22
|
+
! template.declared_alloc-omp-159-1, template.declared_alloc-omp-400-1, template.declared_alloc-omp-8-1
|
|
23
|
+
! - legality: the stress programs pass the stress gate and the pre-run check (offload.engine.prerun.check: the rules and AFAR's
|
|
24
|
+
! front
|
|
25
|
+
! end, two witnesses; results/parity/stress-checked); GCC is a compiler under test only and never a legality witness.
|
|
26
|
+
module dt_m
|
|
27
|
+
implicit none
|
|
28
|
+
type :: holder
|
|
29
|
+
integer, allocatable :: v1(:)
|
|
30
|
+
end type holder
|
|
31
|
+
type(holder) :: gq
|
|
32
|
+
!$omp declare target(gq)
|
|
33
|
+
end module dt_m
|
|
34
|
+
|
|
35
|
+
program declared_alloc_component
|
|
36
|
+
use omp_lib, only: omp_is_initial_device
|
|
37
|
+
use dt_m
|
|
38
|
+
implicit none
|
|
39
|
+
integer :: out(64), i, host_flag
|
|
40
|
+
allocate(gq%v1(64))
|
|
41
|
+
gq%v1 = [(3*i, i = 1, 64)]
|
|
42
|
+
!$omp target enter data map(to: gq%v1)
|
|
43
|
+
out = 0
|
|
44
|
+
host_flag = 1
|
|
45
|
+
!$omp target teams distribute parallel do map(tofrom: out, host_flag)
|
|
46
|
+
do i = 1, 64
|
|
47
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
48
|
+
out(i) = gq%v1(i) + 1
|
|
49
|
+
end do
|
|
50
|
+
!$omp target exit data map(delete: gq%v1)
|
|
51
|
+
print '(a,i0)', 'sum= ', sum(out)
|
|
52
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', sum(out) == 3*64*65/2 + 64)
|
|
53
|
+
end program declared_alloc_component
|
|
54
|
+
! site:
|
|
55
|
+
! title: declare target module variable with an allocatable component used in a target region: internal compiler error
|
|
56
|
+
! summary: A module variable of a derived type with an allocatable component, named in a declare target directive and read
|
|
57
|
+
! + in a target teams distribute parallel do loop after its component is mapped by target enter data, stops GCC 16.2 with an
|
|
58
|
+
! + internal compiler error (lower_omp_target) for both offload targets. Without the declare target directive the program
|
|
59
|
+
! + compiles and runs correctly. AFAR, CCE and NVHPC run the stress programs correctly.
|
|
60
|
+
! control: stress/controls/gcc-declare-target-allocatable-component-control.f90 the same program without declare target
|
|
61
|
+
! end site
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
! # Finding: NVHPC OpenACC does not copy back a derived-type variable
|
|
2
|
+
! # written through a component in a serial construct
|
|
3
|
+
!
|
|
4
|
+
! - compilers: NVHPC nvfortran 25.11 and 26.9, A100 (sm_80), -acc=gpu -gpu=cc80, separate and
|
|
5
|
+
! managed memory, -O2
|
|
6
|
+
! - expected: c1= 203. xc has an exposed access in the serial construct and no visible data clause;
|
|
7
|
+
! in that case "An aggregate variable will be treated as if it appears either: ... In a copy
|
|
8
|
+
! clause otherwise" (OpenACC 3.4 §2.6.2 p.41 l.1388-1391). The access to xc%c1 is an access to xc (§2.6.2 l.1374), and a
|
|
9
|
+
! derived type is a composite type, hence an aggregate (glossary p.159 l.5792-5796, 5807-5811)
|
|
10
|
+
! - actual: c1= 101 on both releases and both memory modes
|
|
11
|
+
! - control (same compiler): serial copy(xc) (data/reports/fuzz-stress-audit/r5-acc-component-control.f90):
|
|
12
|
+
! 203 on both releases and modes
|
|
13
|
+
! - other families: CCE 19/20/21 (ftn -h acc) give 203 on this program (MI300A HSA_XNACK 1 and 0, MI250X)
|
|
14
|
+
! - legality: legal by reading: serial runs one gang, one worker, one vector lane; xc is a local
|
|
15
|
+
! variable of the main program
|
|
16
|
+
! - evidence: results/stress/audit/runs-nvhpc.jsonl. The confirmer gave needs_human (R22, no
|
|
17
|
+
! cross-machine witness); the audit counts the MI300A results
|
|
18
|
+
program acc_component
|
|
19
|
+
implicit none
|
|
20
|
+
type :: t
|
|
21
|
+
integer(8) :: c1
|
|
22
|
+
end type t
|
|
23
|
+
type(t) :: xc
|
|
24
|
+
xc%c1 = 101
|
|
25
|
+
!$acc serial
|
|
26
|
+
xc%c1 = 2 * xc%c1 + 1
|
|
27
|
+
!$acc end serial
|
|
28
|
+
print '(a,i0)', 'c1= ', xc%c1
|
|
29
|
+
end program acc_component
|
|
30
|
+
! site:
|
|
31
|
+
! title: nvfortran -acc: derived-type variable without a data clause is not copied back from a serial region
|
|
32
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-acc-derived-type-component-not-copied-control.f90 serial copy(xc)
|
|
33
|
+
! end site
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* # Finding: NVHPC accepts lastprivate on target teams distribute
|
|
2
|
+
# parallel for, which its guide documents as unsupported, and gives a wrong answer (C)
|
|
3
|
+
|
|
4
|
+
- class: an unsupported clause accepted silently with a wrong answer, the R6
|
|
5
|
+
report-candidate class (as nvhpc-depend-inoutset-ignored.f90); a support claim it contradicts
|
|
6
|
+
is partial_support (data/reports/rulings.md, documented limitations), not a compiler bug in a
|
|
7
|
+
documented feature. NVIDIA HPC Compilers User's Guide 25.11 (and 26.9), §7.4 OpenMP Subset:
|
|
8
|
+
2.9.4 Distribute Directives: "The lastprivate clause is not supported"
|
|
9
|
+
2.14 Clauses on Combined and Composite Constructs: "Clauses on combined constructs are
|
|
10
|
+
supported to the extent that the clauses are supported on the component constructs."
|
|
11
|
+
On this construct lastprivate applies to the distribute and for leaves (5.2 §17.2), so it is
|
|
12
|
+
not supported here. nvc gives no diagnostic. The claim is catalog/omp/claims.yaml
|
|
13
|
+
onleaf.distribute.lastprivate (the triage reads it).
|
|
14
|
+
- compilers: NVHPC nvc 25.11 and 26.9, A100 (sm_80), -mp=gpu -gpu=cc80, separate and managed
|
|
15
|
+
memory, -O2
|
|
16
|
+
- expected: l= 2560 dev= 1. lastprivate gives the original l the value of the sequentially last
|
|
17
|
+
iteration (i = 64: 64 * 40) (5.2 §5.4.5; §17.2 p.340 l.21-30 applies it to the distribute and
|
|
18
|
+
for leaves), and map(tofrom: l) on the target leaf brings it back to the host. The explicit
|
|
19
|
+
map is legal: 5.2 §13.8 p.286 l.29-30 restricts only data-sharing clauses applied to the target
|
|
20
|
+
leaf, and the 5.0 §2.19.7.1 restriction (p.321 l.25-26) exempts combined constructs
|
|
21
|
+
- actual: l= 0 dev= 1, both releases, both memory modes
|
|
22
|
+
- same-compiler controls, all l= 2560 on both releases and modes
|
|
23
|
+
(data/reports/fuzz-stress-audit/, runs in results/stress/audit/runs-nvhpc-fix2.jsonl):
|
|
24
|
+
lp-c-tdpf-red.c the same construct and loop with reduction(max: l) instead of lastprivate
|
|
25
|
+
lp-c-tdpf-copy.c the same construct, private(l), the last iteration stores l in a mapped array
|
|
26
|
+
lp-c-tdist-map.c target teams distribute lastprivate(l) map(tofrom: l) (no parallel for)
|
|
27
|
+
lp-c-tpfor-map.c target parallel for lastprivate(l) map(tofrom: l) (no teams distribute)
|
|
28
|
+
lp-c-tdist-split.c target map(tofrom: l) around teams distribute lastprivate(l)
|
|
29
|
+
The worksharing-loop form (lp-c-tpfor-map.c) uses a documented clause ("The lastprivate clause
|
|
30
|
+
is supported", 2.9.2) and gives 2560. The distribute-only forms (lp-c-tdist-map.c,
|
|
31
|
+
lp-c-tdist-split.c) also give 2560, but that is undocumented behaviour: the guide says
|
|
32
|
+
lastprivate on distribute is not supported. So the composite gives a wrong answer for a clause
|
|
33
|
+
the guide excludes; the controls show that the value can be returned, not that nvc supports it.
|
|
34
|
+
- other families: AFAR amdclang gives 2560 on this program (MI300A HSA_XNACK 1 and 0, MI250X).
|
|
35
|
+
CCE craycc gives 0 here too (see data/reports/fuzz-stress.md, candidate 2b).
|
|
36
|
+
- related, not the same: nvhpc-c-parallel-for-firstprivate-in-target.c is a compile failure
|
|
37
|
+
("Failed to translate OpenMP region") of a parallel for nested in a target region; this program
|
|
38
|
+
compiles and runs a combined construct. Without the map (r2-lastprivate-combined.c and
|
|
39
|
+
lp-c-tdist.c) nvc also gives 0: the missing implicit map, the C form of
|
|
40
|
+
stress/nvhpc-lastprivate-combined-target-not-mapped.f90.
|
|
41
|
+
- legality: legal by reading: the for loop variable is private; only the lastprivate item l is
|
|
42
|
+
written in the loop; dev is written by the initial thread of the second target region
|
|
43
|
+
- evidence: tools/jobs/run_wingtip_fix2.sh (tools/campaigns/stress_audit.py); the confirmer was not run on it */
|
|
44
|
+
#include <stdio.h>
|
|
45
|
+
#include <omp.h>
|
|
46
|
+
int main(void) {
|
|
47
|
+
long long l = 0;
|
|
48
|
+
int dev = -1;
|
|
49
|
+
#pragma omp target teams distribute parallel for lastprivate(l) map(tofrom: l)
|
|
50
|
+
for (int i = 1; i <= 64; i++)
|
|
51
|
+
l = (long long) i * 40;
|
|
52
|
+
#pragma omp target map(tofrom: dev)
|
|
53
|
+
dev = omp_is_initial_device() ? 0 : 1;
|
|
54
|
+
printf("l= %lld dev= %d\n", l, dev);
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
// site:
|
|
58
|
+
// title: nvc -mp=gpu: lastprivate on target teams distribute parallel for accepted silently, value lost
|
|
59
|
+
// control: ../vendor/checks/src/nvhpc/control/nvhpc-c-lastprivate-teams-distribute-parallel-for-lost-control.c reduction(max: l)
|
|
60
|
+
// + instead of
|
|
61
|
+
// + lastprivate(l)
|
|
62
|
+
// end site
|