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,82 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC: a reduction on a combined target construct that also has defaultmap(to: scalar) is not copied
|
|
2
|
+
! # back; the reduction variable keeps its initial value on the host
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: wrong_answer (check=fail)
|
|
7
|
+
! - observed: `r= 0 h= 0` with `check=fail`; identical signature on 4 of 4 failing cells
|
|
8
|
+
! - expected: compiles and prints `r= 2080 h= 0` with `check=pass`
|
|
9
|
+
! - rule: "When specified, explicit data-environment attribute clauses on target directives determine the attributes for variables
|
|
10
|
+
! referenced in a target construct. Otherwise, the first matching rule from the following list determines the implicit
|
|
11
|
+
! data-mapping (or data-sharing) attribute" (5.2 §5.8.1 p.148 l.2-5); the first rule that matches r is "If a variable is the base
|
|
12
|
+
! variable of a list item in a reduction, lastprivate or linear clause on a combined target construct then the list item is
|
|
13
|
+
! treated as if it had appeared in a map clause with a map-type of tofrom if Section 17.2 specifies this behavior" (5.2 §5.8.1
|
|
14
|
+
! p.148 l.12-14), which comes before the defaultmap rule (5.2 §5.8.1 p.148 l.18-19), and Section 17.2 does specify it: "If a list
|
|
15
|
+
! item in a reduction clause on a combined target construct does not have the same base variable or base pointer as a list item
|
|
16
|
+
! in a map clause on the construct, then the effect is as if the list item in the reduction clause appears as a list item in a
|
|
17
|
+
! map clause with a map-type of tofrom" (5.2 §17.2 p.341 l.10-13). OpenMP 5.0 orders the rules the same way: "If a list item
|
|
18
|
+
! appears in a reduction, lastprivate or linear clause on a combined target construct then it is treated as if it also appears
|
|
19
|
+
! in a map clause with a map-type of tofrom" (5.0 §2.19.7 p.314 l.14-16) precedes its defaultmap rule (5.0 §2.19.7 p.314 l.20-21)
|
|
20
|
+
! - vendor: "The defaultmap clause is supported using OpenMP 5.0 semantics." and "The reduction clause is supported." (NVIDIA HPC
|
|
21
|
+
! Compilers User's Guide 26.9, Using OpenMP, items 2.19.7 and 2.19.5; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt)
|
|
22
|
+
! - variants: files next to the reduction in results/parity/nvc1/red/, rows results/parity/nvc1/wt.dm.jsonl (both releases, separate
|
|
23
|
+
! and managed memory) and results/parity/nvc1/tuo.dm.jsonl: target teams distribute parallel do
|
|
24
|
+
! (nvhpc-defaultmap-to-scalar-reduction-teams-variant.f90), target simd (nvhpc-defaultmap-to-scalar-reduction-simd-variant.f90)
|
|
25
|
+
! and the seed's reduction(min:) with the same reduction on a nested simd loop
|
|
26
|
+
! (nvhpc-defaultmap-to-scalar-reduction-min-nested-simd-variant.f90) lose the value too on both releases; with defaultmap(tofrom:
|
|
27
|
+
! scalar) in place of defaultmap(to: scalar) (nvhpc-defaultmap-tofrom-scalar-reduction-variant.f90) the result is right. Not
|
|
28
|
+
! evidence: with defaultmap(firstprivate: scalar) (nvhpc-defaultmap-firstprivate-scalar-reduction-variant.f90) both releases stop
|
|
29
|
+
! in the LLVM optimizer (`opt: ... error: integer constant must have integer type`, a harness error) and AFAR's flang reports
|
|
30
|
+
! "not yet implemented: Firstprivate is currently unsupported defaultmap behaviour"; a lead, not reduced
|
|
31
|
+
! - found by: c1 program par-c1-nvhpc-nvhpc269:962, whose campaign failure is the depend fault of
|
|
32
|
+
! nvhpc-depend-implicit-map-illegal-address.f90 (error 719 at cuEventQuery); with its depend and nowait clauses removed it runs
|
|
33
|
+
! and only r1a is wrong, the reduction(min: r1a) of a target parallel do with defaultmap(to: scalar)
|
|
34
|
+
! (exploration, not rows). No campaign cell has this signature alone, so no programs are counted
|
|
35
|
+
! here (962's
|
|
36
|
+
! campaign cell is related to, and not counted in, the depend finding either)
|
|
37
|
+
! - same-compiler control: controls/nvhpc-defaultmap-to-scalar-removed-control.f90 (one change from this file; correct on nvhpc
|
|
38
|
+
! (NVHPC 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.dm.jsonl, results/parity/nvc1/wt.dm.jsonl);
|
|
39
|
+
! controls/nvhpc-defaultmap-to-scalar-reduction-mapped-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11),
|
|
40
|
+
! nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.dm.jsonl, results/parity/nvc1/wt.dm.jsonl)
|
|
41
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2) run the file correctly (rows
|
|
42
|
+
! results/parity/nvc1/tuo.dm.jsonl); cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) fail it another way, e.g. `r= 2080 h= -1` with
|
|
43
|
+
! `check=fail`
|
|
44
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
45
|
+
! results/parity/nvc1/gate_abd.dm.jsonl, results/parity/nvc1/gate_abd.dm.m2.jsonl, results/parity/nvc1/gate_c.dm.jsonl,
|
|
46
|
+
! results/parity/nvc1/gate_c.dm.m2.jsonl, results/parity/nvc1/wt.dm.jsonl)
|
|
47
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, both controls and the four
|
|
48
|
+
! defaultmap(to:)
|
|
49
|
+
! and defaultmap(tofrom:) variants (offload.engine.prerun.check on a Tuolumne compute node;
|
|
50
|
+
! results/parity/nvc1/prerun.dm.txt); AFAR
|
|
51
|
+
! 24.3.0 and CCE 19/20 compile and run the file, both controls and those four variants correctly with HSA_XNACK 0 and 1
|
|
52
|
+
! (results/parity/nvc1/tuo.dm.jsonl). The firstprivate variant is not evidence: AFAR stops at "not yet implemented" and only CCE
|
|
53
|
+
! 19/20 run it. CCE 21/21.0.4 reduce r correctly on the file and every variant but do not copy back the explicitly mapped h
|
|
54
|
+
! (`r= 2080 h= -1`): their documented defect cce21-defaultmap-aggregate-flag.f90 (a defaultmap clause on target stops the
|
|
55
|
+
! copy-back of a map(tofrom:) scalar), not this one. NVHPC is the compiler under test and is not counted as a witness
|
|
56
|
+
program p
|
|
57
|
+
use omp_lib, only: omp_is_initial_device
|
|
58
|
+
implicit none
|
|
59
|
+
integer :: a(64)
|
|
60
|
+
integer :: i, r, h
|
|
61
|
+
a = [(i, i = 1, 64)]
|
|
62
|
+
r = 0
|
|
63
|
+
h = -1
|
|
64
|
+
!$omp target parallel do map(to: a) map(tofrom: h) defaultmap(to: scalar) reduction(+: r)
|
|
65
|
+
do i = 1, 64
|
|
66
|
+
if (i == 1) h = merge(1, 0, omp_is_initial_device())
|
|
67
|
+
r = r + a(i)
|
|
68
|
+
end do
|
|
69
|
+
!$omp end target parallel do
|
|
70
|
+
print '(a,i0,a,i0)', 'r= ', r, ' h= ', h
|
|
71
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', merge(1, 0, h == 1), ' check=', merge('pass', 'fail', r == 2080 .and. h == 0)
|
|
72
|
+
end program p
|
|
73
|
+
|
|
74
|
+
! site:
|
|
75
|
+
! title: defaultmap(to: scalar) drops a reduction's copy-back
|
|
76
|
+
! summary: nvfortran -mp=gpu appears to behave incorrectly on a reduction on a combined target construct that also has
|
|
77
|
+
! + defaultmap(to: scalar): the reduction variable keeps its initial value on the host. Without the defaultmap clause, or with the
|
|
78
|
+
! + variable in a map(tofrom:) clause, the result is right.
|
|
79
|
+
! control: fuzz/controls/nvhpc-defaultmap-to-scalar-removed-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
80
|
+
! control: fuzz/controls/nvhpc-defaultmap-to-scalar-reduction-mapped-control.f90 one change from the finding; correct on nvhpc,
|
|
81
|
+
! + nvhpc269
|
|
82
|
+
! end site
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC: a target construct whose depend clause names an array that the construct maps only implicitly
|
|
2
|
+
! # ends in CUDA_ERROR_ILLEGAL_ADDRESS
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: run_error
|
|
7
|
+
! - observed: `Accelerator Fatal Error: call to cuEventQuery returned error 700 (CUDA_ERROR_ILLEGAL_ADDRESS): Illegal address during
|
|
8
|
+
! kernel execution`, exit status 1, and the same without OMP_TARGET_OFFLOAD=mandatory (the rows' stderr; the harness's reason
|
|
9
|
+
! reads `exit_status: 1; without mandatory: exit_status: 1`); identical signature on 4 of 4 failing cells
|
|
10
|
+
! - expected: compiles and prints `sum= 2080` with `check=pass`
|
|
11
|
+
! - rule: "If a variable is not a scalar then it is treated as if it had appeared in a map clause with a map-type of tofrom" (5.2
|
|
12
|
+
! §5.8.1 p.149 l.4-5), and on a target construct "If a depend clause is present, it is associated with the target task" (5.2 §13.8
|
|
13
|
+
! p.284 l.14-15): the depend clause orders the target task and does not change how `a` is mapped
|
|
14
|
+
! - vendor: "Any task-generating target construct can have depend and nowait clauses" (NVIDIA HPC Compilers User's Guide 26.9, Using
|
|
15
|
+
! OpenMP, the mapping of depend and nowait to CUDA streams; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt), and the
|
|
16
|
+
! target
|
|
17
|
+
! construct's depend clause is listed as supported (the guide's OpenMP subset, item 2.12.5)
|
|
18
|
+
! - same-compiler control: controls/nvhpc-depend-explicit-map-control.f90 (one change from this file; correct on nvhpc (NVHPC
|
|
19
|
+
! 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.dep.jsonl, results/parity/nvc1/wt.dep.jsonl);
|
|
20
|
+
! controls/nvhpc-depend-removed-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9);
|
|
21
|
+
! rows results/parity/nvc1/tuo.dep.jsonl, results/parity/nvc1/wt.dep.jsonl)
|
|
22
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the
|
|
23
|
+
! file correctly (rows results/parity/nvc1/tuo.dep.jsonl)
|
|
24
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
25
|
+
! results/parity/nvc1/gate_abd.dep.jsonl, results/parity/nvc1/gate_abd.dep.m2.jsonl, results/parity/nvc1/gate_c.dep.jsonl,
|
|
26
|
+
! results/parity/nvc1/gate_c.dep.m2.jsonl, results/parity/nvc1/wt.dep.jsonl); campaign gate of the programs below: 22 cells,
|
|
27
|
+
! 20 confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
28
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127709.jsonl,
|
|
29
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127721.jsonl,
|
|
30
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2465893.jsonl,
|
|
31
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2476695.jsonl,
|
|
32
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210952.jsonl,
|
|
33
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210965.jsonl,
|
|
34
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3354124.jsonl,
|
|
35
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3482833.jsonl); the campaign gate's
|
|
36
|
+
! verdict is confirmed for all 22 cells; the other 2 (1766 on both releases) were rerun in (b) and (c) only
|
|
37
|
+
! - programs (11): par-c1-nvhpc-nvhpc269:1014, par-c1-nvhpc-nvhpc269:1115, par-c1-nvhpc-nvhpc269:1147,
|
|
38
|
+
! par-c1-nvhpc-nvhpc269:1274, par-c1-nvhpc-nvhpc269:1316, par-c1-nvhpc-nvhpc269:1766, par-c1-nvhpc-nvhpc269:1878,
|
|
39
|
+
! par-c1-nvhpc-nvhpc269:2302, par-s1-nvhpc-nvhpc269:1984, par-s1-nvhpc-nvhpc269:2459, par-s1-nvhpc-nvhpc269:4050. The three s1
|
|
40
|
+
! programs name an array the construct maps only implicitly (ds, ic, xr8) in a depend clause with nowait, fail with
|
|
41
|
+
! cuEventQuery error 700 on both releases, and give the expected checksum with their depend and nowait clauses removed
|
|
42
|
+
! (exploration)
|
|
43
|
+
! - related, not counted: par-c1-nvhpc-nvhpc269:962 ends with error 719 (CUDA_ERROR_LAUNCH_FAILED) at cuEventQuery rather than 700,
|
|
44
|
+
! and its depend lists name arrays that are present through an enclosing target data region (o1 also in an explicit map clause)
|
|
45
|
+
! rather than arrays the construct maps implicitly; with depend and nowait removed it runs, with one wrong value that is the
|
|
46
|
+
! defect of nvhpc-defaultmap-to-scalar-reduction-lost.f90 (exploration, not rows)
|
|
47
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file and both controls
|
|
48
|
+
! (offload.engine.prerun.check on
|
|
49
|
+
! a Tuolumne compute node; results/parity/nvc1/prerun.dep.txt); AFAR 24.3.0 and CCE 19/20/21/21.0.4 compile and run it correctly
|
|
50
|
+
! with HSA_XNACK 0 and 1 (results/parity/nvc1/tuo.dep.jsonl). NVHPC is the compiler under test and is not counted as a witness
|
|
51
|
+
program p
|
|
52
|
+
use omp_lib, only: omp_is_initial_device
|
|
53
|
+
implicit none
|
|
54
|
+
integer :: a(64)
|
|
55
|
+
integer :: i, s, host
|
|
56
|
+
a = 0
|
|
57
|
+
host = 1
|
|
58
|
+
!$omp target map(tofrom: host) nowait depend(inout: a)
|
|
59
|
+
do i = 1, 64
|
|
60
|
+
a(i) = i
|
|
61
|
+
end do
|
|
62
|
+
if (omp_is_initial_device()) then
|
|
63
|
+
host = 1
|
|
64
|
+
else
|
|
65
|
+
host = 0
|
|
66
|
+
end if
|
|
67
|
+
!$omp end target
|
|
68
|
+
!$omp taskwait
|
|
69
|
+
s = sum(a)
|
|
70
|
+
print '(a,i0)', 'sum= ', s
|
|
71
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host, ' check=', merge('pass', 'fail', s == 2080)
|
|
72
|
+
end program p
|
|
73
|
+
|
|
74
|
+
! site:
|
|
75
|
+
! title: depend naming an implicitly mapped array: illegal address
|
|
76
|
+
! summary: nvfortran -mp=gpu appears to behave incorrectly when a target construct's depend clause names an array that the construct
|
|
77
|
+
! + maps only implicitly: the kernel ends in CUDA_ERROR_ILLEGAL_ADDRESS. With the array in a map clause, or without the depend
|
|
78
|
+
! + clause, the result is right.
|
|
79
|
+
! control: fuzz/controls/nvhpc-depend-explicit-map-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
80
|
+
! control: fuzz/controls/nvhpc-depend-removed-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
81
|
+
! end site
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC 25.11: the writes of a worksharing loop in a parallel region with a num_threads clause nested in
|
|
2
|
+
! # a distribute loop never reach the array (26.9 correct)
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: wrong_answer (check=fail)
|
|
7
|
+
! - observed: `sum= 0 h= 0` with `check=fail`; identical signature on 2 of 2 failing cells
|
|
8
|
+
! - expected: compiles and prints `sum= 2432 h= 0` with `check=pass`
|
|
9
|
+
! - rule: "The num_threads clause specifies the desired number of threads to execute a parallel region." (5.2 §10.1.2 p.227 l.23)
|
|
10
|
+
! and "If a variable is not a scalar then it is treated as if it had appeared in a map clause with a map-type of tofrom" (5.2
|
|
11
|
+
! §5.8.1 p.149 l.4-5): the clause only sizes the team; o2 is shared by the teams, the distribute loop and the nested parallel
|
|
12
|
+
! region, written by the worksharing loop and copied back when the target region ends
|
|
13
|
+
! - vendor: "The num_threads, default, private, firstprivate, and shared clauses are supported" (NVIDIA HPC Compilers User's Guide
|
|
14
|
+
! 26.9, Using OpenMP, item 2.6 Parallel Construct), "The distribute construct is supported within a teams construct." (item
|
|
15
|
+
! 2.9.4), and the guide's own example of "nested parallelism in the target teams distribute construct" (a parallel loop inside
|
|
16
|
+
! it, with thread_limit recommended); item 2.20 says "nested teams or parallel regions in a target region are not supported",
|
|
17
|
+
! which could also be read as excluding this form; the guide's own example and NVHPC 26.9's correct run of this file are the
|
|
18
|
+
! reasons to read it as a second level of parallelism, and the program is legal by the specification either way
|
|
19
|
+
! (data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt)
|
|
20
|
+
! - exploration (not result rows): num_threads(3), num_teams(2) on the
|
|
21
|
+
! teams, do simd, an
|
|
22
|
+
! allocatable o2 and an explicit map(tofrom: o2) all give sum= 0 on 25.11 and the right sum on 26.9
|
|
23
|
+
! - same-compiler control: controls/nvhpc-distribute-parallel-num-threads-removed-control.f90 (one change from this file; correct on
|
|
24
|
+
! nvhpc (NVHPC 25.11); rows results/parity/nvc1/tuo.dp.jsonl, results/parity/nvc1/wt.dp.jsonl);
|
|
25
|
+
! controls/nvhpc-distribute-parallel-removed-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11); rows
|
|
26
|
+
! results/parity/nvc1/tuo.dp.jsonl, results/parity/nvc1/wt.dp.jsonl)
|
|
27
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4), nvhpc269
|
|
28
|
+
! (NVHPC 26.9) run the file correctly (rows results/parity/nvc1/gate_abd.dp.jsonl, results/parity/nvc1/gate_abd.dp.m2.jsonl,
|
|
29
|
+
! results/parity/nvc1/gate_c.dp.jsonl, results/parity/nvc1/gate_c.dp.m2.jsonl, results/parity/nvc1/tuo.dp.jsonl,
|
|
30
|
+
! results/parity/nvc1/wt.dp.jsonl)
|
|
31
|
+
! - gate and confirmer: 2 of 2 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
32
|
+
! results/parity/nvc1/gate_abd.dp.jsonl, results/parity/nvc1/gate_abd.dp.m2.jsonl, results/parity/nvc1/gate_c.dp.jsonl,
|
|
33
|
+
! results/parity/nvc1/gate_c.dp.m2.jsonl, results/parity/nvc1/wt.dp.jsonl); campaign gate of the programs below: 2 cells, 2
|
|
34
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
35
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127709.jsonl,
|
|
36
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127721.jsonl,
|
|
37
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210952.jsonl,
|
|
38
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210965.jsonl)
|
|
39
|
+
! - programs (2): par-c1-nvhpc-nvhpc269:1098, par-c1-nvhpc-nvhpc269:1733
|
|
40
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file and both controls
|
|
41
|
+
! (offload.engine.prerun.check on
|
|
42
|
+
! a Tuolumne compute node; results/parity/nvc1/prerun.dp.txt); AFAR 24.3.0 and CCE 19/20/21/21.0.4 compile and run all three
|
|
43
|
+
! correctly with HSA_XNACK 0 and 1 (results/parity/nvc1/tuo.dp.jsonl). NVHPC is the compiler under test and is not counted as a
|
|
44
|
+
! witness (26.9 runs the file correctly, 25.11 does not)
|
|
45
|
+
program p
|
|
46
|
+
use omp_lib, only: omp_is_initial_device
|
|
47
|
+
implicit none
|
|
48
|
+
integer, parameter :: n = 32, m = 4
|
|
49
|
+
integer :: o2(n, m)
|
|
50
|
+
integer :: i, j, h
|
|
51
|
+
h = -1
|
|
52
|
+
o2 = 0
|
|
53
|
+
!$omp target map(tofrom: h)
|
|
54
|
+
!$omp teams
|
|
55
|
+
!$omp distribute
|
|
56
|
+
do i = 1, n
|
|
57
|
+
if (i == 1) h = merge(1, 0, omp_is_initial_device())
|
|
58
|
+
!$omp parallel num_threads(1)
|
|
59
|
+
!$omp do
|
|
60
|
+
do j = 1, m
|
|
61
|
+
o2(i, j) = i + j
|
|
62
|
+
end do
|
|
63
|
+
!$omp end do
|
|
64
|
+
!$omp end parallel
|
|
65
|
+
end do
|
|
66
|
+
!$omp end teams
|
|
67
|
+
!$omp end target
|
|
68
|
+
print '(a,i0,a,i0)', 'sum= ', sum(o2), ' h= ', h
|
|
69
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', merge(1, 0, h == 1), ' check=', merge('pass', 'fail', sum(o2) == 2432 .and. h == 0)
|
|
70
|
+
end program p
|
|
71
|
+
|
|
72
|
+
! site:
|
|
73
|
+
! title: parallel num_threads inside distribute: writes lost (25.11)
|
|
74
|
+
! summary: nvfortran 25.11 -mp=gpu appears to behave incorrectly on a worksharing loop in a parallel region with a num_threads
|
|
75
|
+
! + clause nested in a distribute loop: the array it writes stays zero on the host. Without the num_threads clause, or without the
|
|
76
|
+
! + nested parallel region, the result is right; NVHPC 26.9 is correct.
|
|
77
|
+
! control: fuzz/controls/nvhpc-distribute-parallel-num-threads-removed-control.f90 one change from the finding; correct on nvhpc
|
|
78
|
+
! control: fuzz/controls/nvhpc-distribute-parallel-removed-control.f90 one change from the finding; correct on nvhpc
|
|
79
|
+
! end site
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-s1): NVHPC: the end directive of a distribute simd construct is rejected ("Syntax error at or near
|
|
2
|
+
! # identifier simd"); the construct without its end directive compiles and runs correctly
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: rejected
|
|
7
|
+
! - observed: `NVFORTRAN-S-0034-Syntax error at or near identifier simd (<tmpdir>/nvhpc-end-distribute-simd-rejected.f90: 11)`;
|
|
8
|
+
! identical signature on 4 of 4 failing cells
|
|
9
|
+
! - expected: compiles and prints `sum= 2080` with `check=pass`
|
|
10
|
+
! - rule: "If directive-name-A is distribute then directive-name-B may be simd" (5.2 §17.3 p.342 l.17) names the composite
|
|
11
|
+
! distribute simd construct; the directive-name of its paired end directive is "end directive-name unless otherwise specified"
|
|
12
|
+
! (5.2 §3.1 p.49 l.14) and "For a loop-associated directive, the paired end directive is optional." (5.2 §3.1 p.52 l.26):
|
|
13
|
+
! `!$omp end distribute simd` is the construct's end directive, which may be written or left out
|
|
14
|
+
! - vendor: "The distribute simd construct is treated as a distribute construct and is supported for GPU targets; valid
|
|
15
|
+
! supported distribute clauses are accepted; simd clauses are ignored." (NVIDIA HPC Compilers User's Guide 26.9, Using OpenMP,
|
|
16
|
+
! item 2.9.4; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt)
|
|
17
|
+
! - same-compiler control: controls/nvhpc-distribute-simd-no-end-directive-control.f90 (one change from this file; correct on nvhpc
|
|
18
|
+
! (NVHPC 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvs1/tuo.ds.jsonl, results/parity/nvs1/wt.ds.jsonl);
|
|
19
|
+
! controls/nvhpc-distribute-end-distribute-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11), nvhpc269 (NVHPC
|
|
20
|
+
! 26.9); rows results/parity/nvs1/tuo.ds.jsonl, results/parity/nvs1/wt.ds.jsonl)
|
|
21
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the
|
|
22
|
+
! file correctly (rows results/parity/nvs1/tuo.ds.jsonl)
|
|
23
|
+
! - variants: files next to the reduction in results/parity/nvs1/red/, rows results/parity/nvs1/wt.ds.jsonl (both releases,
|
|
24
|
+
! separate and managed memory) and results/parity/nvs1/tuo.ds.jsonl: the combined teams distribute simd with its end directive
|
|
25
|
+
! (nvhpc-end-teams-distribute-simd-unmatched-variant.f90) is rejected with `NVFORTRAN-F-1225-Unmatched directive END - TEAMS
|
|
26
|
+
! DISTRIBUTE`; the combined target teams distribute simd with its end directive
|
|
27
|
+
! (nvhpc-end-target-teams-distribute-simd-variant.f90) compiles and is correct. The two s1 programs end their distribute simd
|
|
28
|
+
! loops with the end directive (fuzz_prog.f90 lines 75 and 90 of seeds 9906 and 8744, the lines the compiler names)
|
|
29
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
30
|
+
! results/parity/nvs1/gate_abd.ds.jsonl, results/parity/nvs1/gate_abd.ds.m2.jsonl, results/parity/nvs1/gate_c.ds.jsonl,
|
|
31
|
+
! results/parity/nvs1/gate_c.ds.m2.jsonl, results/parity/nvs1/wt.ds.jsonl); campaign gate of the programs below: 4 cells, 4
|
|
32
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
33
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2465893.jsonl,
|
|
34
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2476695.jsonl,
|
|
35
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3354124.jsonl,
|
|
36
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3482833.jsonl)
|
|
37
|
+
! - programs (2): par-s1-nvhpc-nvhpc269:9906, par-s1-nvhpc-nvhpc269:8744; the same syntax error is in the stderr of seeds 2146,
|
|
38
|
+
! 3062 and 6056 (`!$omp end distribute simd`) and the Unmatched directive message of the variant in those of 671 and 5847
|
|
39
|
+
! (`!$omp end teams distribute simd`), both releases, whose cells' first diagnostics are other rejections (an unrecognized
|
|
40
|
+
! declare directive, a syntax error at `:`, thread_limit on target), so they are not counted
|
|
41
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, its controls and the variants above
|
|
42
|
+
! (offload.engine.prerun.check on a Tuolumne compute node; results/parity/nvs1/prerun.ds.txt); AFAR 24.3.0 and CCE 19/20/21/21.0.4
|
|
43
|
+
! compile and run all of them correctly with HSA_XNACK 0 and 1 (results/parity/nvs1/tuo.ds.jsonl). NVHPC is the compiler under
|
|
44
|
+
! test and is not counted as a witness
|
|
45
|
+
program p
|
|
46
|
+
implicit none
|
|
47
|
+
integer :: a(64), i
|
|
48
|
+
a = 0
|
|
49
|
+
!$omp target map(from: a)
|
|
50
|
+
!$omp teams
|
|
51
|
+
!$omp distribute simd
|
|
52
|
+
do i = 1, 64
|
|
53
|
+
a(i) = i
|
|
54
|
+
end do
|
|
55
|
+
!$omp end distribute simd
|
|
56
|
+
!$omp end teams
|
|
57
|
+
!$omp end target
|
|
58
|
+
print '(a,i0)', 'sum= ', sum(a)
|
|
59
|
+
print '(a,a)', 'RESULT ran_on_host=0 check=', merge('pass', 'fail', sum(a) == 2080)
|
|
60
|
+
end program p
|
|
61
|
+
|
|
62
|
+
! site:
|
|
63
|
+
! title: end distribute simd: syntax error
|
|
64
|
+
! summary: nvfortran -mp=gpu appears not to support the end directive of a distribute simd construct: `!$omp end distribute
|
|
65
|
+
! + simd` stops the compile with a syntax error at `simd`, and `!$omp end teams distribute simd` with "Unmatched directive END -
|
|
66
|
+
! + TEAMS DISTRIBUTE". The same construct without its end directive, or a distribute construct with its end directive, compiles
|
|
67
|
+
! + and runs correctly.
|
|
68
|
+
! control: fuzz/controls/nvhpc-distribute-simd-no-end-directive-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
69
|
+
! control: fuzz/controls/nvhpc-distribute-end-distribute-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
70
|
+
! end site
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-s1): NVHPC: a character value computed in the region (achar, a concatenation) assigned to a character
|
|
2
|
+
! # array element inside a loop construct of a target region fails to translate ("Character local variable unsupported on
|
|
3
|
+
! # device"); the same assignment in a distribute construct compiles and runs correctly
|
|
4
|
+
!
|
|
5
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
6
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
7
|
+
! - failure: ice
|
|
8
|
+
! - observed: `NVFORTRAN-F-0155-Compiler failed to translate accelerator region (see -Minfo messages): Character local variable
|
|
9
|
+
! unsupported on device (<tmpdir>/nvhpc`; identical signature on 4 of 4 failing cells
|
|
10
|
+
! - expected: compiles and prints `s= 1160` with `check=pass`
|
|
11
|
+
! - rule: "A loop construct specifies that the logical iterations of the associated loops may execute concurrently and permits
|
|
12
|
+
! the encountering threads to execute the loop accordingly." (5.2 §11.7 p.257 l.8-9); the loop body is a character assignment,
|
|
13
|
+
! which no restriction of the construct excludes
|
|
14
|
+
! - vendor: "The private, bind, and collapse clauses are supported" on the loop construct (NVIDIA HPC Compilers User's Guide
|
|
15
|
+
! 26.9, Using OpenMP, item 2.9.5; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt); the guide names no character limit
|
|
16
|
+
! - same-compiler control: controls/nvhpc-loop-character-distribute-control.f90 (one change from this file; correct on nvhpc
|
|
17
|
+
! (NVHPC 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvs1/tuo.cl.jsonl, results/parity/nvs1/wt.cl.jsonl);
|
|
18
|
+
! controls/nvhpc-loop-character-array-value-control.f90 (the value copied from a mapped character array instead of computed:
|
|
19
|
+
! four edits from this file, the array, its initialization, its map clause and the assignment; correct on nvhpc (NVHPC 25.11),
|
|
20
|
+
! nvhpc269 (NVHPC 26.9); rows results/parity/nvs1/tuo.cl.jsonl, results/parity/nvs1/wt.cl.jsonl)
|
|
21
|
+
! - other families: afar (AFAR 24.3.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the file correctly (rows
|
|
22
|
+
! results/parity/nvs1/tuo.cl.jsonl); cce19 (CCE 19.0.0) fail it another way, e.g. `ftn-7032 ftn: ERROR P, File =
|
|
23
|
+
! ../../nvhpc-loop-character-achar-unsupported.f90, Line = 10`
|
|
24
|
+
! - variants: files next to the reduction in results/parity/nvs1/red/, rows results/parity/nvs1/wt.cl.jsonl (both releases,
|
|
25
|
+
! separate and managed memory) and results/parity/nvs1/tuo.cl.jsonl: the seed's concatenation `achar(...) // xc(i)(2:4)` in a
|
|
26
|
+
! loop construct of a target parallel region (nvhpc-loop-character-concatenation-target-parallel-variant.f90) fails the same
|
|
27
|
+
! way; the same concatenation in a do construct of the target parallel region compiles
|
|
28
|
+
! (nvhpc-loop-character-concatenation-do-control.f90) but its run does not end on either release, the implicit barrier of a
|
|
29
|
+
! worksharing loop in a combined target parallel construct (the c1 finding nvhpc-target-parallel-single-hang.f90), so it is
|
|
30
|
+
! not a control of this finding. A substring copy `o2(i)(2:4) = xc(i)(2:4)` in the loop construct compiles (exploration)
|
|
31
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
32
|
+
! results/parity/nvs1/gate_abd.cl.jsonl, results/parity/nvs1/gate_abd.cl.m2.jsonl, results/parity/nvs1/gate_c.cl.jsonl,
|
|
33
|
+
! results/parity/nvs1/gate_c.cl.m2.jsonl, results/parity/nvs1/wt.cl.jsonl); campaign gate of the programs below: 2 cells, 2
|
|
34
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
35
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2465893.jsonl,
|
|
36
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.2476695.jsonl,
|
|
37
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3354124.jsonl,
|
|
38
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.3482833.jsonl)
|
|
39
|
+
! - programs (1): par-s1-nvhpc-nvhpc269:2564
|
|
40
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, its controls and the variants above
|
|
41
|
+
! (offload.engine.prerun.check on a Tuolumne compute node; results/parity/nvs1/prerun.cl.txt); AFAR 24.3.0 and CCE 20/21/21.0.4
|
|
42
|
+
! compile and run this file and its controls correctly with HSA_XNACK 0 and 1 (results/parity/nvs1/tuo.cl.jsonl); CCE 19
|
|
43
|
+
! rejects character data in target regions ("Unsupported OpenMP construct Fortran character"), its own documented limit
|
|
44
|
+
! (afar-cce19-character-defaultmap.f90). NVHPC is the compiler under test and is not counted as a witness
|
|
45
|
+
program p
|
|
46
|
+
implicit none
|
|
47
|
+
integer, parameter :: n = 16
|
|
48
|
+
character(len=4) :: o2(n)
|
|
49
|
+
integer :: i, s
|
|
50
|
+
o2 = ' '
|
|
51
|
+
!$omp target teams map(from: o2)
|
|
52
|
+
!$omp loop
|
|
53
|
+
do i = 1, n
|
|
54
|
+
o2(i) = achar(64 + i)
|
|
55
|
+
end do
|
|
56
|
+
!$omp end loop
|
|
57
|
+
!$omp end target teams
|
|
58
|
+
s = 0
|
|
59
|
+
do i = 1, n
|
|
60
|
+
s = s + ichar(o2(i)(1:1))
|
|
61
|
+
end do
|
|
62
|
+
print '(a,i0)', 's= ', s
|
|
63
|
+
print '(a,a)', 'RESULT ran_on_host=0 check=', merge('pass', 'fail', s == 16 * 64 + 136)
|
|
64
|
+
end program p
|
|
65
|
+
|
|
66
|
+
! site:
|
|
67
|
+
! title: character value in a loop construct: unsupported
|
|
68
|
+
! summary: nvfortran -mp=gpu appears not to support assigning a character value computed in the region (achar, a concatenation)
|
|
69
|
+
! + to a character array element inside a loop construct of a target region: the compile stops with "Character local variable
|
|
70
|
+
! + unsupported on device". The same assignment in a distribute construct, or the copy of a mapped character element in the loop
|
|
71
|
+
! + construct, compiles and runs correctly.
|
|
72
|
+
! control: fuzz/controls/nvhpc-loop-character-distribute-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
73
|
+
! control: fuzz/controls/nvhpc-loop-character-array-value-control.f90 the value copied from a mapped character array (four
|
|
74
|
+
! + edits from the finding); correct on nvhpc, nvhpc269
|
|
75
|
+
! end site
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC: a map clause with the always modifier (tofrom or from) that follows a map(to:) clause on the
|
|
2
|
+
! # same target directive is not copied back; its list items keep their host values
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: wrong_answer (check=fail)
|
|
7
|
+
! - observed: `r= 0 h= 0` with `check=fail`; identical signature on 4 of 4 failing cells
|
|
8
|
+
! - expected: compiles and prints `r= 5 h= 0` with `check=pass`
|
|
9
|
+
! - rule: on exit from the region, "If the reference count of the corresponding list item is one or if the always map-type-modifier
|
|
10
|
+
! is specified, and if the map-type is from or tofrom, the original list item is updated as if the list item appeared in a from
|
|
11
|
+
! clause on a target update directive." (5.2 §5.8.3 p.154 l.2-5): r is in a tofrom map with the always modifier and its reference
|
|
12
|
+
! count is one, so the device value (a(5) = 5) must reach the host either way; the order of the map clauses on the directive
|
|
13
|
+
! carries no meaning
|
|
14
|
+
! - vendor: "The map([[mapmod[,]...] maptype:] datalist) clause is supported. Of the map-type-modifiers, always is supported, close
|
|
15
|
+
! is ignored, and mapper(mapid) is not supported." (NVIDIA HPC Compilers User's Guide 26.9, Using OpenMP, item 2.19.7;
|
|
16
|
+
! data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt)
|
|
17
|
+
! - variants: files next to the reduction in results/parity/nvc1/red/, rows results/parity/nvc1/wt.al.jsonl (both releases, separate
|
|
18
|
+
! and managed memory) and results/parity/nvc1/tuo.al.jsonl (AFAR and CCE correct on all of them): map(always, from: r)
|
|
19
|
+
! (nvhpc-map-always-from-after-map-to-variant.f90), the always clause separated from the map(to:) clause by another map clause
|
|
20
|
+
! (nvhpc-map-always-after-map-to-separated-variant.f90), two list items in the always clause, both lost
|
|
21
|
+
! (nvhpc-map-always-after-map-to-two-items-variant.f90), and the write inside a parallel worksharing loop
|
|
22
|
+
! (nvhpc-map-always-after-map-to-parallel-do-variant.f90) fail on both releases too
|
|
23
|
+
! - exploration (not result rows): the items of the always clause do arrive
|
|
24
|
+
! on the device (a
|
|
25
|
+
! mapped array summed there, a scalar read there); a preceding map(from:) or map(tofrom:) clause does not trigger the loss, a
|
|
26
|
+
! preceding map(always, to:) clause does; scalars in map(always, tofrom:) with no preceding map(to:) clause are right with and
|
|
27
|
+
! without teams or parallel regions. In c1 program 2019 the three kernels' reductions and arrays were wrong this way (a teams
|
|
28
|
+
! reduction variable in map(always, tofrom:) after map(always, to:), the array of the same clause read as zeros); with the always
|
|
29
|
+
! modifiers removed, or with the always clauses written first, the program prints its expected checksum on both releases
|
|
30
|
+
! - same-compiler control: controls/nvhpc-map-always-removed-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11),
|
|
31
|
+
! nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.al.jsonl, results/parity/nvc1/wt.al.jsonl);
|
|
32
|
+
! controls/nvhpc-map-always-first-control.f90 (one change from this file; correct on nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9);
|
|
33
|
+
! rows results/parity/nvc1/tuo.al.jsonl, results/parity/nvc1/wt.al.jsonl)
|
|
34
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the
|
|
35
|
+
! file correctly (rows results/parity/nvc1/tuo.al.jsonl)
|
|
36
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
37
|
+
! results/parity/nvc1/gate_abd.al.jsonl, results/parity/nvc1/gate_abd.al.m2.jsonl, results/parity/nvc1/gate_c.al.jsonl,
|
|
38
|
+
! results/parity/nvc1/gate_c.al.m2.jsonl, results/parity/nvc1/wt.al.jsonl); campaign gate of the programs below: 2 cells, 2
|
|
39
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
40
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127709.jsonl,
|
|
41
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210965.jsonl)
|
|
42
|
+
! - programs (1): par-c1-nvhpc-nvhpc269:2019
|
|
43
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, both controls and the variants
|
|
44
|
+
! (offload.engine.prerun.check on a Tuolumne compute node; results/parity/nvc1/prerun.al.txt); AFAR 24.3.0 and CCE 19/20/21/21.0.4
|
|
45
|
+
! compile and run all of them correctly with HSA_XNACK 0 and 1 (results/parity/nvc1/tuo.al.jsonl). NVHPC is the compiler under
|
|
46
|
+
! test and is not counted as a witness
|
|
47
|
+
program p
|
|
48
|
+
use omp_lib, only: omp_is_initial_device
|
|
49
|
+
implicit none
|
|
50
|
+
integer :: a(64)
|
|
51
|
+
integer :: i, r, h
|
|
52
|
+
a = [(i, i = 1, 64)]
|
|
53
|
+
r = 0
|
|
54
|
+
h = -1
|
|
55
|
+
!$omp target map(to: a) map(always, tofrom: r) map(tofrom: h)
|
|
56
|
+
h = merge(1, 0, omp_is_initial_device())
|
|
57
|
+
r = a(5)
|
|
58
|
+
!$omp end target
|
|
59
|
+
print '(a,i0,a,i0)', 'r= ', r, ' h= ', h
|
|
60
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', merge(1, 0, h == 1), ' check=', merge('pass', 'fail', r == 5 .and. h == 0)
|
|
61
|
+
end program p
|
|
62
|
+
|
|
63
|
+
! site:
|
|
64
|
+
! title: map(always, tofrom:) after map(to:): not copied back
|
|
65
|
+
! summary: nvfortran -mp=gpu appears to behave incorrectly on a map clause with the always modifier (tofrom or from) that follows a
|
|
66
|
+
! + map(to:) clause on the same target directive: its list items are not copied back and keep their host values. Without the
|
|
67
|
+
! + modifier, or with the always clause written before the map(to:) clause, the result is right.
|
|
68
|
+
! control: fuzz/controls/nvhpc-map-always-removed-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
69
|
+
! control: fuzz/controls/nvhpc-map-always-first-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
70
|
+
! end site
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC: a reduction(*) (also max, iand) on the worksharing loop of a parallel region with
|
|
2
|
+
! # num_threads(2) in a target region gives 0
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: wrong_answer (check=fail)
|
|
7
|
+
! - observed: `r= 0` with `check=fail`; identical signature on 4 of 4 failing cells
|
|
8
|
+
! - expected: compiles and prints `r= 768` with `check=pass`
|
|
9
|
+
! - rule: "For each list item, a private copy is created for each implicit task or SIMD lane and is initialized with the initializer
|
|
10
|
+
! value of the reduction-identifier. After the end of the region, the original list item is updated with the values of the private
|
|
11
|
+
! copies using the combiner associated with the reduction-identifier." (5.2 §5.5.8 p.134 l.21-24); the initializer of * is 1
|
|
12
|
+
! (Table 5.2), so r is 3 times 2**8 = 768 whatever the number of threads
|
|
13
|
+
! - vendor: on GPU targets the parallel construct supports "The num_threads, default, private, firstprivate, and shared clauses",
|
|
14
|
+
! and "The reduction clause is supported. The optional modifier is not supported." (NVIDIA HPC Compilers User's Guide 26.9, Using
|
|
15
|
+
! OpenMP, items 2.6 and 2.19.5; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt)
|
|
16
|
+
! - same-compiler control: controls/nvhpc-num-threads-removed-control.f90 (one change from this file; correct on nvhpc (NVHPC
|
|
17
|
+
! 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.nt.jsonl, results/parity/nvc1/wt.nt.jsonl)
|
|
18
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the
|
|
19
|
+
! file correctly (rows results/parity/nvc1/tuo.nt.jsonl)
|
|
20
|
+
! - variants: files next to the reduction in results/parity/nvc1/red/, rows results/parity/nvc1/wt.nt.jsonl (both releases, separate
|
|
21
|
+
! and managed memory) and results/parity/nvc1/tuo.nt.jsonl: reduction(max: r) (nvhpc-num-threads-reduction-max-variant.f90) and
|
|
22
|
+
! reduction(iand: r) (nvhpc-num-threads-reduction-iand-variant.f90) print `r= 0` too, as does the same loop written as target,
|
|
23
|
+
! parallel num_threads(2) and do (nvhpc-num-threads-split-variant.f90); reduction(+: r) with num_threads(2)
|
|
24
|
+
! (nvhpc-num-threads-reduction-sum-variant.f90) is correct. The reduction identifiers whose initializer is not 0 lose their result
|
|
25
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
26
|
+
! results/parity/nvc1/gate_abd.nt.jsonl, results/parity/nvc1/gate_abd.nt.m2.jsonl, results/parity/nvc1/gate_c.nt.jsonl,
|
|
27
|
+
! results/parity/nvc1/gate_c.nt.m2.jsonl, results/parity/nvc1/wt.nt.jsonl); campaign gate of the programs below: 2 cells, 2
|
|
28
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
29
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127721.jsonl,
|
|
30
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210952.jsonl)
|
|
31
|
+
! - programs (1): par-c1-nvhpc-nvhpc269:2123
|
|
32
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, its control and the variants above
|
|
33
|
+
! (offload.engine.prerun.check on a Tuolumne compute node; results/parity/nvc1/prerun.nt.txt); AFAR 24.3.0 and CCE 19/20/21/21.0.4
|
|
34
|
+
! compile and run all of them correctly with HSA_XNACK 0 and 1 (results/parity/nvc1/tuo.nt.jsonl). NVHPC is the compiler under
|
|
35
|
+
! test and is not counted as a witness
|
|
36
|
+
program p
|
|
37
|
+
implicit none
|
|
38
|
+
integer :: r, i
|
|
39
|
+
r = 3
|
|
40
|
+
!$omp target parallel do map(tofrom: r) num_threads(2) reduction(*: r)
|
|
41
|
+
do i = 1, 8
|
|
42
|
+
r = r * 2
|
|
43
|
+
end do
|
|
44
|
+
!$omp end target parallel do
|
|
45
|
+
print '(a,i0)', 'r= ', r
|
|
46
|
+
print '(a,a)', 'RESULT ran_on_host=0 check=', merge('pass', 'fail', r == 768)
|
|
47
|
+
end program p
|
|
48
|
+
|
|
49
|
+
! site:
|
|
50
|
+
! title: num_threads with a * reduction gives 0
|
|
51
|
+
! summary: nvfortran -mp=gpu appears to behave incorrectly on a worksharing-loop reduction with *, max or iand in a parallel region
|
|
52
|
+
! + with num_threads(2) inside a target region: the result is 0. Without num_threads, or with a + reduction, the result is right.
|
|
53
|
+
! control: fuzz/controls/nvhpc-num-threads-removed-control.f90 one change from the finding; correct on nvhpc, nvhpc269
|
|
54
|
+
! end site
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
! # Finding (parity-fuzz-c1): NVHPC: nvfortran fails with "Compiler failed to translate OpenMP region" on firstprivate on a target
|
|
2
|
+
! # parallel construct that contains a worksharing loop
|
|
3
|
+
!
|
|
4
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); modes: copy, managed; -O2
|
|
5
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
6
|
+
! - failure: compiler failure (NVFORTRAN-F-0155, exit status 2 at compile time); the harness files it as rejected, the index as
|
|
7
|
+
! ice, as the C sibling nvhpc-c-parallel-for-firstprivate-in-target.c does
|
|
8
|
+
! - observed: `NVFORTRAN-F-0155-Compiler failed to translate OpenMP region
|
|
9
|
+
! (<tmpdir>/nvhpc-target-parallel-firstprivate-translate-failure.f90: 6)`; identical signature on 4 of 4 failing cells
|
|
10
|
+
! - expected: compiles and prints `suma= 2272` with `check=pass`
|
|
11
|
+
! - rule: the target construct's clauses include firstprivate (5.2 §13.8 p.284 l.4-6), and "The semantics of the combined constructs
|
|
12
|
+
! are identical to that of explicitly specifying the first construct containing one instance of the second construct and no other
|
|
13
|
+
! statements." (5.2 §17.4 p.343 l.7-8): the program is target firstprivate(k) containing a parallel region with a worksharing
|
|
14
|
+
! loop, which nvfortran compiles (variants)
|
|
15
|
+
! - vendor: "The if, private, firstprivate, is_device_ptr, and nowait clauses are supported" on the target construct and "Combined
|
|
16
|
+
! constructs are supported to the extent that the component constructs are themselves supported." (NVIDIA HPC Compilers User's
|
|
17
|
+
! Guide 26.9, Using OpenMP, items 2.12.5 and 2.13; data/index/claims/nvidia-hpc-26.9-user-guide-openmp.txt). The C sibling,
|
|
18
|
+
! firstprivate on a parallel for in a target region, is nvhpc-c-parallel-for-firstprivate-in-target.c (the same message)
|
|
19
|
+
! - same-compiler control: controls/nvhpc-target-parallel-firstprivate-dropped-control.f90 (one change from this file; correct on
|
|
20
|
+
! nvhpc (NVHPC 25.11), nvhpc269 (NVHPC 26.9); rows results/parity/nvc1/tuo.fp2.jsonl, results/parity/nvc1/wt.fp2.jsonl)
|
|
21
|
+
! - other families: afar (AFAR 24.3.0), cce19 (CCE 19.0.0), cce20 (CCE 20.0.2), cce21 (CCE 21.0.3), cce21_4 (CCE 21.0.4) run the
|
|
22
|
+
! file correctly (rows results/parity/nvc1/tuo.fp2.jsonl)
|
|
23
|
+
! - variants: files next to the reduction in results/parity/nvc1/red/, rows results/parity/nvc1/wt.fp2.jsonl (both releases,
|
|
24
|
+
! separate and managed memory) and results/parity/nvc1/tuo.fp2.jsonl: the same loop under target firstprivate(k) with a separate
|
|
25
|
+
! parallel construct (nvhpc-target-firstprivate-split-variant.f90) and as target parallel do firstprivate(k)
|
|
26
|
+
! (nvhpc-target-parallel-do-firstprivate-variant.f90) compile and are correct on NVHPC. The fuzz program (seed 2207) also has a
|
|
27
|
+
! critical construct in the region, which the guide documents as unsupported on GPU targets; with firstprivate(p1) removed
|
|
28
|
+
! nvfortran reports that error instead (an exploration compile, not a recorded row), so the translation failure comes first
|
|
29
|
+
! - gate and confirmer: 4 of 4 cells reproduce in all four environments (a-d; (c) on another node or GPU than (a); rows
|
|
30
|
+
! results/parity/nvc1/gate_abd.fp2.jsonl, results/parity/nvc1/gate_abd.fp2.m2.jsonl, results/parity/nvc1/gate_c.fp2.jsonl,
|
|
31
|
+
! results/parity/nvc1/gate_c.fp2.m2.jsonl, results/parity/nvc1/wt.fp2.jsonl); campaign gate of the programs below: 2 cells, 2
|
|
32
|
+
! confirmed in the four environments (a-d; (c) on another node or GPU; rows
|
|
33
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127709.jsonl,
|
|
34
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.abd.127721.jsonl,
|
|
35
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210952.jsonl,
|
|
36
|
+
! results/parity/wingtip/results/parity/gate/fuzz/reruns/wingtip.c.210965.jsonl)
|
|
37
|
+
! - programs (1): par-c1-nvhpc-nvhpc269:2207
|
|
38
|
+
! - legality: the rules (offload.engine.rules) and AFAR's flang front end accept this file, its control and the variants above
|
|
39
|
+
! (offload.engine.prerun.check on a Tuolumne compute node; results/parity/nvc1/prerun.fp2.txt); AFAR 24.3.0 and CCE
|
|
40
|
+
! 19/20/21/21.0.4
|
|
41
|
+
! compile and run it correctly with HSA_XNACK 0 and 1 (results/parity/nvc1/tuo.fp2.jsonl). NVHPC is the compiler under test and is
|
|
42
|
+
! not counted as a witness
|
|
43
|
+
program p
|
|
44
|
+
implicit none
|
|
45
|
+
integer :: a(64), i, k
|
|
46
|
+
a = 0
|
|
47
|
+
k = 3
|
|
48
|
+
!$omp target parallel map(tofrom: a) firstprivate(k)
|
|
49
|
+
!$omp do
|
|
50
|
+
do i = 1, 64
|
|
51
|
+
a(i) = i + k
|
|
52
|
+
end do
|
|
53
|
+
!$omp end do nowait
|
|
54
|
+
!$omp end target parallel
|
|
55
|
+
print '(a,i0)', 'suma= ', sum(a)
|
|
56
|
+
print '(a,a)', 'RESULT ran_on_host=0 check=', merge('pass', 'fail', sum(a) == 2080 + 64 * 3)
|
|
57
|
+
end program p
|
|
58
|
+
|
|
59
|
+
! site:
|
|
60
|
+
! title: firstprivate on target parallel with a do loop: translation failure
|
|
61
|
+
! summary: nvfortran -mp=gpu appears to behave incorrectly on a target parallel construct with firstprivate that contains a
|
|
62
|
+
! + worksharing loop: the compile stops with "Compiler failed to translate OpenMP region". Without firstprivate, or with a separate
|
|
63
|
+
! + parallel construct, it compiles and runs correctly.
|
|
64
|
+
! control: fuzz/controls/nvhpc-target-parallel-firstprivate-dropped-control.f90 one change from the finding; correct on nvhpc,
|
|
65
|
+
! + nvhpc269
|
|
66
|
+
! end site
|