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,56 @@
|
|
|
1
|
+
// NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory modes: the C
|
|
2
|
+
// form of nvhpc-parallel-if-in-target-nvvm-ice.f90. An if clause on a parallel
|
|
3
|
+
// for in a target region, whose body calls omp_get_num_threads, makes the
|
|
4
|
+
// device compiler fail (nvvmCompileProgram: failed with error 9:
|
|
5
|
+
// NVVM_ERROR_COMPILATION, "'@nvkernel_main_...' defined with type 'void (i8*,
|
|
6
|
+
// i8*, i8*)*'") instead of compiling the program or giving a diagnostic.
|
|
7
|
+
// Without the omp_get_num_threads call the program compiles.
|
|
8
|
+
// Spec: the if clause is one of the inputs that "are used to determine the
|
|
9
|
+
// number of threads to use in the region" (5.2 §10.1.1 p.226).
|
|
10
|
+
// Vendor: "The if and copyin clauses are supported only for CPU targets; the
|
|
11
|
+
// compiler emits an error for GPU targets" (HPC Compilers User's Guide 25.11
|
|
12
|
+
// §7.4, 2.6): documented unsupported, so the bug is the internal failure where
|
|
13
|
+
// a diagnostic is promised. The guide's §2.20 sentence "nested teams or
|
|
14
|
+
// parallel regions in a target region are not supported" is read as a
|
|
15
|
+
// parallel region nested in another parallel (or teams) region inside a
|
|
16
|
+
// target region; here the parallel region is the only one in the target
|
|
17
|
+
// region.
|
|
18
|
+
// Expected: "sum 2080 nthr 1" (or a diagnostic naming the if clause).
|
|
19
|
+
// Observed (2026-10-24, nvc 25.11-0, -O2): compile exit status 2 with the NVVM
|
|
20
|
+
// error.
|
|
21
|
+
// Found by the catalog (omp52/60-c-clause-if: confirmer R10-compile-ice);
|
|
22
|
+
// reduced by hand.
|
|
23
|
+
// NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
24
|
+
// the same flags): still present -- the same NVVM error, both modes.
|
|
25
|
+
// Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
26
|
+
// each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
27
|
+
// compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
28
|
+
// on both releases, the same output.
|
|
29
|
+
// NVHPC: nvc -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
30
|
+
#include <stdio.h>
|
|
31
|
+
#include <stdbool.h>
|
|
32
|
+
#include <omp.h>
|
|
33
|
+
int main(void) {
|
|
34
|
+
int a[64];
|
|
35
|
+
int nthr = 0;
|
|
36
|
+
bool use_par = false;
|
|
37
|
+
for (int i = 0; i < 64; i++) a[i] = 0;
|
|
38
|
+
#pragma omp target map(tofrom: a) map(from: nthr)
|
|
39
|
+
{
|
|
40
|
+
#pragma omp parallel for if(use_par)
|
|
41
|
+
for (int i = 0; i < 64; i++) {
|
|
42
|
+
a[i] = i + 1;
|
|
43
|
+
if (i == 0) nthr = omp_get_num_threads();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
int s = 0;
|
|
47
|
+
for (int i = 0; i < 64; i++) s += a[i];
|
|
48
|
+
printf("sum %d nthr %d\n", s, nthr);
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
// site:
|
|
52
|
+
// title: nvfortran/nvc -mp=gpu: if clause on a parallel loop in a target region gives an internal NVVM error instead of the
|
|
53
|
+
// + documented diagnostic
|
|
54
|
+
// control: ../vendor/checks/src/nvhpc/control/nvhpc-c-parallel-if-in-target-nvvm-ice-control.c the if clause removed
|
|
55
|
+
// same_as: nvhpc-parallel-if-in-target-nvvm-ice
|
|
56
|
+
// end site
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory modes:
|
|
2
|
+
! with defaultmap(firstprivate) on a target construct, the arrays and
|
|
3
|
+
! scalars the construct maps EXPLICITLY (map(from: b), map(tofrom:
|
|
4
|
+
! host_flag)) are not copied back: the host sees b and host_flag unchanged.
|
|
5
|
+
! Spec: "The defaultmap clause determines the implicit data-mapping or
|
|
6
|
+
! data-sharing attribute of certain variables" (5.2 §5.8.7 p.161); "When
|
|
7
|
+
! specified, explicit data-environment attribute clauses on target
|
|
8
|
+
! directives determine the attributes" of the variables they name (5.2
|
|
9
|
+
! §5.8.1 p.148).
|
|
10
|
+
! Vendor: "The defaultmap clause is supported using OpenMP 5.0 semantics"
|
|
11
|
+
! (HPC Compilers User's Guide 25.11 §7.4, 2.12.5).
|
|
12
|
+
! Expected: "sum 2144 host_flag 0".
|
|
13
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2, OMP_TARGET_OFFLOAD=
|
|
14
|
+
! mandatory, two runs, the same): "sum 0 host_flag 1".
|
|
15
|
+
! Found by the catalog (omp50/52/60-clause-defaultmap-firstprivate: their
|
|
16
|
+
! cells read ran_on_host=1 check=fail; confirmer R20-runtime-bug); reduced
|
|
17
|
+
! by hand.
|
|
18
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
19
|
+
! the same flags): still present -- the same: "sum 0 host_flag 1", both modes.
|
|
20
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
21
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
22
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
23
|
+
! on both releases, the same output.
|
|
24
|
+
! NVHPC: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
25
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
26
|
+
program p
|
|
27
|
+
use omp_lib, only: omp_is_initial_device
|
|
28
|
+
implicit none
|
|
29
|
+
integer :: b(64), host_flag, i, c
|
|
30
|
+
b = 0
|
|
31
|
+
host_flag = 1
|
|
32
|
+
c = 1
|
|
33
|
+
!$omp target map(from: b) map(tofrom: host_flag) defaultmap(firstprivate)
|
|
34
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
35
|
+
do i = 1, 64
|
|
36
|
+
b(i) = i + c
|
|
37
|
+
end do
|
|
38
|
+
!$omp end target
|
|
39
|
+
print *, 'sum', sum(b), 'host_flag', host_flag
|
|
40
|
+
end program p
|
|
41
|
+
! site:
|
|
42
|
+
! title: nvfortran -mp=gpu: defaultmap(firstprivate) drops the copy-back of explicitly mapped variables
|
|
43
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-defaultmap-firstprivate-explicit-map-control.f90 defaultmap(firstprivate)
|
|
44
|
+
! + removed
|
|
45
|
+
! end site
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory modes
|
|
2
|
+
! (-gpu=mem:separate and mem:managed): defaultmap(from) (likewise defaultmap(alloc)) on a
|
|
3
|
+
! target construct breaks the indexing of allocatable arrays the construct
|
|
4
|
+
! maps EXPLICITLY: b(i) = a(i) stores the wrong elements.
|
|
5
|
+
! Spec: "The defaultmap clause determines the implicit data-mapping or
|
|
6
|
+
! data-sharing attribute of certain variables" (5.2 §5.8.7 p.161) and
|
|
7
|
+
! "When specified, explicit data-environment attribute clauses on target
|
|
8
|
+
! directives determine the attributes" of the variables they name (5.2
|
|
9
|
+
! §5.8.1 p.148): a and b keep map(to:) and map(from:).
|
|
10
|
+
! Vendor: "The defaultmap clause is supported using OpenMP 5.0 semantics"
|
|
11
|
+
! (HPC Compilers User's Guide 25.11 §7.4, 2.12.5 Target Construct).
|
|
12
|
+
! Expected: "b(1) 1 b(64) 64 sum 2080".
|
|
13
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2, two runs, the same):
|
|
14
|
+
! "b(1) 2 b(64) 0 sum 2079" (b shifted by one element); with
|
|
15
|
+
! defaultmap(alloc): "b(1) 0 b(64) 64 sum 2079"; with defaultmap(tofrom)
|
|
16
|
+
! or without defaultmap, and with fixed-size arrays: correct. The
|
|
17
|
+
! array descriptor of an allocatable looks mapped by the defaultmap
|
|
18
|
+
! behaviour (from: not copied to the device).
|
|
19
|
+
! Found by the catalog (omp50/52/60-clause-defaultmap-from: confirmer
|
|
20
|
+
! R20-runtime-bug); reduced by hand.
|
|
21
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
22
|
+
! the same flags): still present -- the same: "b(1) 2 b(64) 0 sum 2079", in separate and in managed memory (25.11 likewise in both
|
|
23
|
+
! modes).
|
|
24
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
25
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
26
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
27
|
+
! on both releases, the same output.
|
|
28
|
+
! Coverage-parity fuzz, stratum c1 (2026-11-03): program par-c1-nvhpc-nvhpc269:1572 (a target
|
|
29
|
+
! region with defaultmap(alloc: scalar) that indexes explicitly mapped allocatable arrays) gives a
|
|
30
|
+
! wrong checksum on 25.11 and 26.9 (rows
|
|
31
|
+
! results/parity/wingtip/results/fuzz/par-c1-nvhpc-nvhpc269/programs.jsonl; the gate confirms
|
|
32
|
+
! both cells in a-d, results/parity/wingtip/results/parity/gate/fuzz/verdicts.nvhpc-topup.jsonl).
|
|
33
|
+
! Without the defaultmap clause it gives the expected checksum; a reduced form reads a(i+1) for
|
|
34
|
+
! a(i) of an allocatable array, mapped implicitly or explicitly, and is correct with
|
|
35
|
+
! defaultmap(tofrom: scalar), defaultmap(firstprivate: scalar) or an explicit-shape array: this
|
|
36
|
+
! appears to be the shift of this finding, reached through the scalar category, which names no
|
|
37
|
+
! array (exploration runs on both releases, no result rows).
|
|
38
|
+
! No separate finding; if the scalar-category form holds up in rows, the title and control of this
|
|
39
|
+
! finding are narrower than the defect.
|
|
40
|
+
! NVHPC: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
41
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
42
|
+
program p
|
|
43
|
+
implicit none
|
|
44
|
+
integer, allocatable :: a(:), b(:)
|
|
45
|
+
integer :: i
|
|
46
|
+
allocate(a(64), b(64))
|
|
47
|
+
a = [(i, i = 1, 64)]
|
|
48
|
+
b = 0
|
|
49
|
+
!$omp target map(to: a) map(from: b) defaultmap(from)
|
|
50
|
+
do i = 1, 64
|
|
51
|
+
b(i) = a(i)
|
|
52
|
+
end do
|
|
53
|
+
!$omp end target
|
|
54
|
+
print *, 'b(1)', b(1), 'b(64)', b(64), 'sum', sum(b), '(expected 1 64 2080)'
|
|
55
|
+
end program p
|
|
56
|
+
! site:
|
|
57
|
+
! title: nvfortran -mp=gpu: defaultmap(from) or defaultmap(alloc) shifts explicitly mapped allocatable arrays
|
|
58
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-defaultmap-from-allocatable-indexing-control.f90 defaultmap(tofrom) instead of
|
|
59
|
+
! + defaultmap(from)
|
|
60
|
+
! end site
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory
|
|
2
|
+
! modes: the inoutset and mutexinoutset dependence types on target nowait
|
|
3
|
+
! constructs are accepted silently and ignored, giving a wrong answer: a
|
|
4
|
+
! later target nowait with depend(in: w) runs before the first one has
|
|
5
|
+
! written w. NVHPC documents both types as outside its subset (below), so
|
|
6
|
+
! the defect is an unsupported dependence type accepted without the
|
|
7
|
+
! message the guide promises, not a documented feature failing.
|
|
8
|
+
! Spec: "For the in task-dependence-type, if the storage location of at
|
|
9
|
+
! least one of the list items matches the storage location of a list item
|
|
10
|
+
! appearing in a depend clause with an out, inout, mutexinoutset, or
|
|
11
|
+
! inoutset task-dependence-type on a construct from which a sibling task
|
|
12
|
+
! was previously generated, then the generated task will be a dependent
|
|
13
|
+
! task of that sibling task" (5.2 §15.9.5 p.323).
|
|
14
|
+
! Vendor (HPC Compilers User's Guide 25.11 and 26.9 §7.4): depend on the
|
|
15
|
+
! target constructs "is supported as described in 2.17.11" (2.12.3-2.12.6),
|
|
16
|
+
! and 2.17.11: "The dependence types in, out, and inout are supported. The
|
|
17
|
+
! dependence types mutexinoutset and depobj, dependence modifier
|
|
18
|
+
! iterator(iters), depend(source), and depend(sink:vector) are not
|
|
19
|
+
! supported." (inoutset is in neither list); §7: "Where ignoring such
|
|
20
|
+
! features is not possible, or could result in ambiguous or incorrect
|
|
21
|
+
! execution, the compilers emit appropriate error messages at compile- or
|
|
22
|
+
! run-time": no message, at compile or run time.
|
|
23
|
+
! Expected: "sum(b) 2080".
|
|
24
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2, two runs, the same):
|
|
25
|
+
! "sum(b) 0" with depend(inoutset: w) and with depend(mutexinoutset: w);
|
|
26
|
+
! with depend(out: w): 2080 (correct).
|
|
27
|
+
! Found by the catalog (omp52/60-clause-depend-inoutset, omp50/52/60-
|
|
28
|
+
! clause-depend-mutexinoutset: confirmer R20-runtime-bug); reduced by hand.
|
|
29
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
30
|
+
! the same flags): still present -- the same: "sum(b) 0", both modes.
|
|
31
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
32
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
33
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
34
|
+
! on both releases, the same output.
|
|
35
|
+
! NVHPC: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
36
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
37
|
+
program p
|
|
38
|
+
implicit none
|
|
39
|
+
integer :: w(64), b(64), j, sp, spin(1)
|
|
40
|
+
w = 0
|
|
41
|
+
b = 0
|
|
42
|
+
!$omp target nowait map(tofrom: w) map(from: spin) depend(inoutset: w)
|
|
43
|
+
sp = 1
|
|
44
|
+
do j = 1, 20000000
|
|
45
|
+
sp = mod(7*sp + j, 1000003)
|
|
46
|
+
end do
|
|
47
|
+
spin(1) = sp
|
|
48
|
+
do j = 1, 64
|
|
49
|
+
w(j) = j
|
|
50
|
+
end do
|
|
51
|
+
!$omp end target
|
|
52
|
+
!$omp target nowait map(to: w) map(from: b) depend(in: w)
|
|
53
|
+
do j = 1, 64
|
|
54
|
+
b(j) = w(j)
|
|
55
|
+
end do
|
|
56
|
+
!$omp end target
|
|
57
|
+
!$omp taskwait
|
|
58
|
+
print *, 'sum(b)', sum(b), '(expected 2080)'
|
|
59
|
+
end program p
|
|
60
|
+
! site:
|
|
61
|
+
! title: nvfortran -mp=gpu: depend(inoutset) on target nowait accepted and ignored, wrong answer
|
|
62
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-depend-inoutset-ignored-control.f90 depend(out: w) instead of
|
|
63
|
+
! + depend(inoutset: w)
|
|
64
|
+
! end site
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory modes: a
|
|
2
|
+
! target teams distribute parallel do with num_teams(4) and
|
|
3
|
+
! dist_schedule(static, 4) ends at run time with "Accelerator Fatal Error:
|
|
4
|
+
! call to cuMemcpyDtoHAsync returned error 700 (CUDA_ERROR_ILLEGAL_ADDRESS):
|
|
5
|
+
! Illegal address during kernel execution" (exit status 1).
|
|
6
|
+
! Spec: with dist_schedule(static, chunk_size) the iterations are divided
|
|
7
|
+
! into chunks that "are assigned to the initial teams of the league in a
|
|
8
|
+
! round-robin fashion in the order of the initial team number" (5.2
|
|
9
|
+
! §11.6.1 p.256); the program is legal.
|
|
10
|
+
! Vendor: "The private, firstprivate, collapse, and dist_schedule(static [
|
|
11
|
+
! ,chunksize]) clauses are supported" (HPC Compilers User's Guide 25.11
|
|
12
|
+
! §7.4, 2.9.4 Distribute Directives).
|
|
13
|
+
! Expected: "sum 2080".
|
|
14
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2, OMP_TARGET_OFFLOAD=
|
|
15
|
+
! mandatory, two runs, the same): "Failing in Thread:1", the illegal
|
|
16
|
+
! address error at line 10, exit status 1. Without dist_schedule the
|
|
17
|
+
! program is correct.
|
|
18
|
+
! Found by the catalog (omp50/52/60-clause-dist_schedule-chunk_size:
|
|
19
|
+
! confirmer R20-runtime-bug); reduced by hand. The C port of the catalog
|
|
20
|
+
! program does not compile: nvc does not finish (compile timeout, 900 s;
|
|
21
|
+
! nvhpc-c-dist-schedule-chunk-compile-hang.c).
|
|
22
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
23
|
+
! the same flags): still present -- the same: the illegal-address abort, exit 1, both modes.
|
|
24
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
25
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
26
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
27
|
+
! on both releases, the same output.
|
|
28
|
+
! Coverage-parity fuzz, stratum c1 (2026-11-03): programs par-c1-nvhpc-nvhpc269:1052
|
|
29
|
+
! (dist_schedule(static, 1) on teams distribute parallel do in a target region) and :1389
|
|
30
|
+
! (dist_schedule(static, 2) on target teams distribute parallel do simd) end with this message
|
|
31
|
+
! (cuMemcpyDtoHAsync, error 700) on 25.11 and 26.9 (rows
|
|
32
|
+
! results/parity/wingtip/results/fuzz/par-c1-nvhpc-nvhpc269/programs.jsonl; the gate confirms
|
|
33
|
+
! all four cells in a-d, results/parity/wingtip/results/parity/gate/fuzz/verdicts.nvhpc-topup.jsonl).
|
|
34
|
+
! With dist_schedule(static) in place of the chunked form each gives the expected checksum
|
|
35
|
+
! (exploration runs on both releases). No separate finding.
|
|
36
|
+
! NVHPC: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
37
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
38
|
+
program p
|
|
39
|
+
implicit none
|
|
40
|
+
integer :: b(64), i
|
|
41
|
+
b = 0
|
|
42
|
+
!$omp target teams distribute parallel do map(from: b) num_teams(4) &
|
|
43
|
+
!$omp& dist_schedule(static, 4)
|
|
44
|
+
do i = 1, 64
|
|
45
|
+
b(i) = i
|
|
46
|
+
end do
|
|
47
|
+
print *, 'sum', sum(b)
|
|
48
|
+
end program p
|
|
49
|
+
! site:
|
|
50
|
+
! title: nvfortran -mp=gpu: dist_schedule(static, 4) on target teams distribute parallel do ends in CUDA_ERROR_ILLEGAL_ADDRESS
|
|
51
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-dist-schedule-chunk-illegal-address-control.f90 dist_schedule(static, 4) removed
|
|
52
|
+
! end site
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), managed memory
|
|
2
|
+
! (-gpu=mem:managed): after the OpenACC shutdown directive a HOST access to
|
|
3
|
+
! an allocatable array ends the program with SIGSEGV; the same program is
|
|
4
|
+
! correct in separate memory (the compiler's default).
|
|
5
|
+
! Spec: "The shutdown directive shuts down the connection to the given
|
|
6
|
+
! device or devices of the given device type, and frees any associated
|
|
7
|
+
! runtime resources. This ends all data lifetimes in device memory"
|
|
8
|
+
! (OpenACC 3.4 §2.14.2 p.86). It ends device data lifetimes; the host array
|
|
9
|
+
! is host data of the program (no data clause names it here), so reading it
|
|
10
|
+
! on the host afterwards is defined. Managed memory is NVHPC's mode in which
|
|
11
|
+
! "Dynamically allocated host data are placed in CUDA Managed Memory" (HPC
|
|
12
|
+
! Compilers User's Guide 25.11 §5.4): the program's own host allocation
|
|
13
|
+
! becomes a runtime resource that shutdown frees.
|
|
14
|
+
! Expected: "after shutdown" and "sum 64", exit 0.
|
|
15
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2, two runs, the same):
|
|
16
|
+
! - -gpu=mem:separate: "after shutdown", "sum 64", exit 0 (correct);
|
|
17
|
+
! - -gpu=mem:managed: no output, exit status 139 (SIGSEGV; the buffered
|
|
18
|
+
! output is lost).
|
|
19
|
+
! Found by the catalog: acc34-directive-shutdown is correct in separate
|
|
20
|
+
! memory and crashes in managed memory (catalog/mode_differences.yaml
|
|
21
|
+
! nvhpc_entries, class managed_failure); reduced by hand to this program.
|
|
22
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
23
|
+
! the same flags): still present -- the same: managed memory SIGSEGV (exit 139), separate correct.
|
|
24
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
25
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
26
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
27
|
+
! on both releases, the same output.
|
|
28
|
+
! NVHPC: nvfortran -acc=gpu -gpu=cc80 -gpu=mem:managed -O2
|
|
29
|
+
! Run: ./a.out
|
|
30
|
+
program p
|
|
31
|
+
implicit none
|
|
32
|
+
integer, allocatable :: a(:)
|
|
33
|
+
allocate(a(64))
|
|
34
|
+
a = 1
|
|
35
|
+
!$acc shutdown
|
|
36
|
+
print *, 'after shutdown'
|
|
37
|
+
print *, 'sum', sum(a)
|
|
38
|
+
end program p
|
|
39
|
+
! site:
|
|
40
|
+
! title: nvfortran -acc -gpu=mem:managed: host access to an allocatable after !$acc shutdown ends in SIGSEGV
|
|
41
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-managed-acc-shutdown-host-access-control.f90 the shutdown directive removed
|
|
42
|
+
! end site
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
! NVHPC 25.11, NVIDIA A100 80GB PCIe (wingtip, sm_80), both memory modes
|
|
2
|
+
! (-gpu=mem:separate and -gpu=mem:managed): an if clause on a parallel do
|
|
3
|
+
! nested in a target region makes the device compiler fail
|
|
4
|
+
! (nvvmCompileProgram: failed with error 9: NVVM_ERROR_COMPILATION, "parse
|
|
5
|
+
! invalid forward reference to function 'nvkernel_MAIN__...' with wrong
|
|
6
|
+
! type!") instead of compiling the program or giving a diagnostic.
|
|
7
|
+
! Spec: the if clause is one of the inputs that "are used to determine the
|
|
8
|
+
! number of threads to use in the region" (5.2 §10.1.1 p.226); an if clause
|
|
9
|
+
! that evaluates to false gives a team of one thread. The program is legal.
|
|
10
|
+
! Vendor: "The if and copyin clauses are supported only for CPU targets;
|
|
11
|
+
! the compiler emits an error for GPU targets" (HPC Compilers User's Guide
|
|
12
|
+
! 25.11 §7.4, 2.6 Parallel Construct): documented unsupported, so the bug
|
|
13
|
+
! is the internal device-compiler failure where a diagnostic is promised.
|
|
14
|
+
! The guide's §2.20 sentence "nested teams or parallel regions in a
|
|
15
|
+
! target region are not supported" is read as a parallel region nested in
|
|
16
|
+
! another parallel (or teams) region inside a target region; here the
|
|
17
|
+
! parallel do is the only parallel region in the target region.
|
|
18
|
+
! Expected: "sum 2080" (or a diagnostic naming the if clause).
|
|
19
|
+
! Observed (2026-10-24, nvfortran 25.11-0, -O2): compile exit status 2 with
|
|
20
|
+
! the NVVM error and "NVFORTRAN-W-0155-Compiler failed to translate
|
|
21
|
+
! accelerator region (see -Minfo messages): Device compiler exited with
|
|
22
|
+
! error status code"; the same for the C port (nvc) of the catalog program.
|
|
23
|
+
! Found by the catalog (omp50/52/60-clause-if, omp52/60-c-clause-if:
|
|
24
|
+
! confirmer R10-compile-ice); reduced by hand.
|
|
25
|
+
! NVHPC 26.9 (26.9-0, the latest release; rerun 2026-10-24 on wingtip with
|
|
26
|
+
! the same flags): still present -- the same NVVM failure, now after a new warning "NVFORTRAN-W-0155-Passing external procedure as
|
|
27
|
+
! argument in OpenACC/OpenMP device routine context - runtime behavior may be unsupported"; both modes.
|
|
28
|
+
! Fix (2026-10-24): rerun on 25.11 and 26.9 in both memory modes,
|
|
29
|
+
! each with its own runtime libraries (LD_LIBRARY_PATH = the release's
|
|
30
|
+
! compilers/lib; the first 26.9 runs had loaded 25.11's): still present
|
|
31
|
+
! on both releases, the same output.
|
|
32
|
+
! Coverage-parity fuzz, stratum c1 (2026-11-03): program par-c1-nvhpc-nvhpc269:2306, a
|
|
33
|
+
! parallel do with proc_bind(spread) and if(parallel: lpar) in a target region, stops the same way
|
|
34
|
+
! on 25.11 and 26.9 (nvvmCompileProgram: failed with error 9: NVVM_ERROR_COMPILATION; rows
|
|
35
|
+
! results/parity/wingtip/results/fuzz/par-c1-nvhpc-nvhpc269/programs.jsonl; the gate confirms both
|
|
36
|
+
! cells in a-d, results/parity/wingtip/results/parity/gate/fuzz/verdicts.nvhpc-topup.jsonl). New
|
|
37
|
+
! facet: the if clause with the parallel directive-name modifier reaches the NVVM failure too, while
|
|
38
|
+
! six other c1 cells with if(parallel: ...) get the documented diagnostic "GPU target doesn't
|
|
39
|
+
! support 'if' clauses for managing parallel region". No separate finding.
|
|
40
|
+
! NVHPC: nvfortran -mp=gpu -gpu=cc80 -gpu=mem:separate -O2
|
|
41
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
42
|
+
program p
|
|
43
|
+
implicit none
|
|
44
|
+
integer :: a(64), i
|
|
45
|
+
logical :: use_par
|
|
46
|
+
use_par = .false.
|
|
47
|
+
a = 0
|
|
48
|
+
!$omp target map(tofrom: a)
|
|
49
|
+
!$omp parallel do if(use_par)
|
|
50
|
+
do i = 1, 64
|
|
51
|
+
a(i) = i
|
|
52
|
+
end do
|
|
53
|
+
!$omp end target
|
|
54
|
+
print *, 'sum', sum(a)
|
|
55
|
+
end program p
|
|
56
|
+
! site:
|
|
57
|
+
! title: nvfortran/nvc -mp=gpu: if clause on a parallel loop in a target region gives an internal NVVM error instead of the
|
|
58
|
+
! + documented diagnostic
|
|
59
|
+
! control: ../vendor/checks/src/nvhpc/control/nvhpc-parallel-if-in-target-nvvm-ice-control.f90 the if clause removed
|
|
60
|
+
! end site
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
! # Finding (fortran-oop): amdflang: DEALLOCATE of an allocatable finalizable object in device code fails at the device link
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: afar (AFAR: copy, unified); -O2
|
|
4
|
+
! - build: amdflang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
|
|
5
|
+
! - failure: rejected (link_undefined_symbol, the program's own object); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `ld.lld: error: undefined symbol: flang_rt_verbose_abort(char const*, ...)` at the device link, both modes: the
|
|
7
|
+
! device code of the DEALLOCATE (with its finalization) calls a flang runtime routine that has no device version
|
|
8
|
+
! - expected: compiles; `r1= 64 r2= 2144`
|
|
9
|
+
! - rule: Fortran 2018 7.5.6.3 para 2 (DEALLOCATE finalizes the object); the final subroutine is declare target (5.2 §1.2.6 p.19)
|
|
10
|
+
! - same-compiler control: a non-allocatable local of the same type (controls/final-local.f90, the family program
|
|
11
|
+
! oop-assignfinal-final-local): correct in both modes (results/oop/main/rows.part*.jsonl,
|
|
12
|
+
! results/oop/probe/ctl2.*.final-local.*.jsonl)
|
|
13
|
+
! - other families: CCE 19/20 stop the device thread at the DEALLOCATE and CCE 21 aborts (cce-final-dealloc-device-abort.f90); GCC
|
|
14
|
+
! 16.2 correct. The confirmer's signature also matches afar-udr-derived-type-link.f90 (the same undefined symbol, from a declare
|
|
15
|
+
! reduction with a structure-constructor combiner); the triggers differ, so this is a finding of its own
|
|
16
|
+
! - gate and confirmer: 2 cells, 2 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
17
|
+
! (results/oop/main/confirm.jsonl): compiler_bug (R10b-own-link-or-hang) 2
|
|
18
|
+
! - programs (1): oop-assignfinal-final-dealloc (offload/engine/oop_gen.py; this file is the first one)
|
|
19
|
+
! - legality: the rules and the front ends of the other families (AFAR's own front end is not its witness): CCE compiles it (its
|
|
20
|
+
! failure is at run time) and NVHPC's verdict is no verdict (an unsupported runtime routine, results/oop/main/witness.jsonl);
|
|
21
|
+
! tools/campaigns/oop.py legality: legal for AFAR
|
|
22
|
+
module oop_m
|
|
23
|
+
implicit none
|
|
24
|
+
integer, parameter :: n = 64
|
|
25
|
+
type ft
|
|
26
|
+
integer :: v = 0
|
|
27
|
+
contains
|
|
28
|
+
final :: ft_fin
|
|
29
|
+
end type ft
|
|
30
|
+
integer :: fin_count = 0
|
|
31
|
+
!$omp declare target to(fin_count)
|
|
32
|
+
contains
|
|
33
|
+
subroutine ft_fin(o)
|
|
34
|
+
!$omp declare target
|
|
35
|
+
type(ft), intent(inout) :: o
|
|
36
|
+
!$omp atomic update
|
|
37
|
+
fin_count = fin_count + 1
|
|
38
|
+
end subroutine ft_fin
|
|
39
|
+
subroutine alloc_work(k, r)
|
|
40
|
+
!$omp declare target
|
|
41
|
+
integer, intent(in) :: k
|
|
42
|
+
integer, intent(out) :: r
|
|
43
|
+
type(ft), allocatable :: o
|
|
44
|
+
allocate(o)
|
|
45
|
+
o%v = k
|
|
46
|
+
r = o%v + 1
|
|
47
|
+
deallocate(o)
|
|
48
|
+
end subroutine alloc_work
|
|
49
|
+
end module oop_m
|
|
50
|
+
|
|
51
|
+
program oop
|
|
52
|
+
use omp_lib
|
|
53
|
+
use oop_m
|
|
54
|
+
implicit none
|
|
55
|
+
integer :: host_flag
|
|
56
|
+
logical :: ok
|
|
57
|
+
integer :: r1, r2
|
|
58
|
+
integer :: res(n), i
|
|
59
|
+
host_flag = 1
|
|
60
|
+
!$omp target map(from: host_flag)
|
|
61
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
62
|
+
!$omp end target
|
|
63
|
+
fin_count = 0
|
|
64
|
+
!$omp target update to(fin_count)
|
|
65
|
+
!$omp target teams distribute parallel do map(tofrom: res)
|
|
66
|
+
do i = 1, n
|
|
67
|
+
call alloc_work(i, res(i))
|
|
68
|
+
end do
|
|
69
|
+
!$omp target update from(fin_count)
|
|
70
|
+
r1 = fin_count
|
|
71
|
+
r2 = sum(res)
|
|
72
|
+
ok = .true.
|
|
73
|
+
ok = ok .and. (r1 == 64)
|
|
74
|
+
ok = ok .and. (r2 == 2144)
|
|
75
|
+
print '(a,i0)', 'r1= ', r1
|
|
76
|
+
print '(a,i0)', 'r2= ', r2
|
|
77
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
78
|
+
end program oop
|
|
79
|
+
! site:
|
|
80
|
+
! title: deallocating a finalizable object in device code fails at the link
|
|
81
|
+
! summary: A declare target subroutine allocates and deallocates a local allocatable object of a type with a final subroutine.
|
|
82
|
+
! + AMD's flang fails at the device link: flang_rt_verbose_abort is undefined. The same type as a non-allocatable local is finalized
|
|
83
|
+
! + correctly on the device.
|
|
84
|
+
! control: oop/controls/final-local.f90 a non-allocatable local of the same finalizable type (no DEALLOCATE)
|
|
85
|
+
! end site
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
! # Finding (fortran-oop): amdflang: a derived type with a length type parameter in a target region is not implemented
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: afar (AFAR: copy, unified); -O2
|
|
4
|
+
! - build: amdflang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
|
|
5
|
+
! - failure: rejected (not_implemented); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `flang/lib/Lower/ConvertType.cpp:470: not yet implemented` for the length parameter, both modes
|
|
7
|
+
! - expected: compiles; `r1= 16 r2= 1496`
|
|
8
|
+
! - rule: 5.2 §5.8.3 p.155 l.5-7 (type parameters of mapped list items)
|
|
9
|
+
! - same-compiler control: the same program with the type's length parameter replaced by a fixed size
|
|
10
|
+
! (controls/pdt-len-unparameterized.f90, one change): correct (check=pass) on AFAR in both modes in the stored run and the
|
|
11
|
+
! gate's four environments a-d, (c) on another node or GPU (results/oop/probe/ctl2.*.pdt-len-unparameterized.*.jsonl); a kind
|
|
12
|
+
! type parameter alone (controls/pdt-kind.f90) is correct too (results/oop/main/rows.part*.jsonl)
|
|
13
|
+
! - other families: CCE rejects them too (cce-pdt-default-mapper-rejected.f90); GCC 16.2 aborts at run time
|
|
14
|
+
! - gate and confirmer: 8 cells, 8 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
15
|
+
! (results/oop/main/confirm.jsonl): unsupported (R05-unsupported) 8
|
|
16
|
+
! - programs (4): oop-pdt-len, oop-pdt-deferred, oop-pdt-array, oop-pdt-kindlen (offload/engine/oop_gen.py; this file is the first
|
|
17
|
+
! one)
|
|
18
|
+
! - legality: the rules accept every program; the front ends of the other families: CCE compiles none (its own rejection,
|
|
19
|
+
! cce-pdt-default-mapper-rejected.f90) and NVHPC's verdict is in results/oop/main/witness.jsonl; the not-implemented message is
|
|
20
|
+
! AFAR's own statement of a missing feature
|
|
21
|
+
module oop_m
|
|
22
|
+
implicit none
|
|
23
|
+
integer, parameter :: n = 64
|
|
24
|
+
type lv(m)
|
|
25
|
+
integer, len :: m
|
|
26
|
+
integer :: a(m)
|
|
27
|
+
end type lv
|
|
28
|
+
end module oop_m
|
|
29
|
+
|
|
30
|
+
program oop
|
|
31
|
+
use omp_lib
|
|
32
|
+
use oop_m
|
|
33
|
+
implicit none
|
|
34
|
+
integer :: host_flag
|
|
35
|
+
logical :: ok
|
|
36
|
+
integer :: r1, r2
|
|
37
|
+
type(lv(16)) :: x
|
|
38
|
+
integer :: i
|
|
39
|
+
host_flag = 1
|
|
40
|
+
!$omp target map(from: host_flag)
|
|
41
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
42
|
+
!$omp end target
|
|
43
|
+
do i = 1, 16
|
|
44
|
+
x%a(i) = i
|
|
45
|
+
end do
|
|
46
|
+
!$omp target map(tofrom: x) map(from: r1)
|
|
47
|
+
r1 = x%m
|
|
48
|
+
do i = 1, x%m
|
|
49
|
+
x%a(i) = x%a(i) * x%a(i)
|
|
50
|
+
end do
|
|
51
|
+
!$omp end target
|
|
52
|
+
r2 = sum(x%a)
|
|
53
|
+
ok = .true.
|
|
54
|
+
ok = ok .and. (r1 == 16)
|
|
55
|
+
ok = ok .and. (r2 == 1496)
|
|
56
|
+
print '(a,i0)', 'r1= ', r1
|
|
57
|
+
print '(a,i0)', 'r2= ', r2
|
|
58
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
59
|
+
end program oop
|
|
60
|
+
! site:
|
|
61
|
+
! title: length type parameters of derived types are not implemented in offload code
|
|
62
|
+
! summary: AMD's flang reports 'not yet implemented' for a parameterized derived type with a length type parameter used in a
|
|
63
|
+
! + target region. A kind type parameter works.
|
|
64
|
+
! control: oop/controls/pdt-len-unparameterized.f90 the same program; the type has no length parameter (a fixed size instead)
|
|
65
|
+
! end site
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
! # Finding (fortran-oop): SELECT TYPE with a CLASS IS guard in device code fails to link (_EXTENDS_TYPE_OF)
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: cce19 (CCE 19.0.0: copy, unified), cce20 (CCE 20.0.2: copy, unified), cce21 (CCE 21.0.3: copy,
|
|
4
|
+
! unified), cce21_4 (CCE 21.0.4: copy, unified); -O2
|
|
5
|
+
! - build: ftn -fopenmp -O2 (module load cce/<v> craype-accel-amd-gfx942 rocm/<r>; OpenACC: ftn -h acc)
|
|
6
|
+
! - failure: rejected (link_undefined_symbol, the program's own object); OMP_TARGET_OFFLOAD=mandatory
|
|
7
|
+
! - observed: `lld: error: undefined symbol: _EXTENDS_TYPE_OF`, every CCE release, both modes
|
|
8
|
+
! - expected: compiles; `r1= 121`
|
|
9
|
+
! - rule: Fortran 2018 11.1.11 (CLASS IS guards); no OpenMP restriction on SELECT TYPE in device procedures
|
|
10
|
+
! (section 6)
|
|
11
|
+
! - same-compiler control: TYPE IS guards only (oop-poly-select-type) link (and then take the wrong branch:
|
|
12
|
+
! cce-select-type-guard-not-taken.f90)
|
|
13
|
+
! - other families: AFAR correct; GCC 16.2 rejects it (gcc-vtab-not-marked-for-offload.f90)
|
|
14
|
+
! - gate and confirmer: 8 cells, 8 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
15
|
+
! (results/oop/main/confirm.jsonl): compiler_bug (R10b-own-link-or-hang) 8
|
|
16
|
+
! - programs (1): oop-poly-class-is (offload/engine/oop_gen.py; this file is the first one)
|
|
17
|
+
! - legality: for the cce cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
18
|
+
! (-fsyntax-only) (tools/campaigns/oop.py legality, results/oop/main/legality.json)
|
|
19
|
+
module oop_m
|
|
20
|
+
implicit none
|
|
21
|
+
integer, parameter :: n = 64
|
|
22
|
+
type base_t
|
|
23
|
+
integer :: a = 0
|
|
24
|
+
end type base_t
|
|
25
|
+
type, extends(base_t) :: ext1
|
|
26
|
+
integer :: u = 0
|
|
27
|
+
end type ext1
|
|
28
|
+
type, extends(base_t) :: ext2
|
|
29
|
+
integer :: v = 0
|
|
30
|
+
end type ext2
|
|
31
|
+
contains
|
|
32
|
+
subroutine tag(s, t)
|
|
33
|
+
!$omp declare target
|
|
34
|
+
class(base_t), intent(in) :: s
|
|
35
|
+
integer, intent(out) :: t
|
|
36
|
+
t = 0
|
|
37
|
+
select type (s)
|
|
38
|
+
class is (base_t)
|
|
39
|
+
t = 1
|
|
40
|
+
type is (ext2)
|
|
41
|
+
t = 2
|
|
42
|
+
end select
|
|
43
|
+
end subroutine tag
|
|
44
|
+
end module oop_m
|
|
45
|
+
|
|
46
|
+
program oop
|
|
47
|
+
use omp_lib
|
|
48
|
+
use oop_m
|
|
49
|
+
implicit none
|
|
50
|
+
integer :: host_flag
|
|
51
|
+
logical :: ok
|
|
52
|
+
integer :: r1
|
|
53
|
+
type(ext1) :: e1
|
|
54
|
+
type(ext2) :: e2
|
|
55
|
+
type(base_t) :: b0
|
|
56
|
+
integer :: t1, t2, t3
|
|
57
|
+
host_flag = 1
|
|
58
|
+
!$omp target map(from: host_flag)
|
|
59
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
60
|
+
!$omp end target
|
|
61
|
+
!$omp target map(tofrom: e1, e2, b0) map(from: t1, t2, t3)
|
|
62
|
+
call tag(e1, t1)
|
|
63
|
+
call tag(e2, t2)
|
|
64
|
+
call tag(b0, t3)
|
|
65
|
+
!$omp end target
|
|
66
|
+
r1 = 100 * t1 + 10 * t2 + t3
|
|
67
|
+
ok = .true.
|
|
68
|
+
ok = ok .and. (r1 == 121)
|
|
69
|
+
print '(a,i0)', 'r1= ', r1
|
|
70
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
71
|
+
end program oop
|
|
72
|
+
! site:
|
|
73
|
+
! title: a CLASS IS guard of SELECT TYPE in device code fails at the link
|
|
74
|
+
! summary: SELECT TYPE with a CLASS IS guard in a declare target subroutine called in a target region fails at the device link on
|
|
75
|
+
! + CCE 19, 20 and 21 (undefined _EXTENDS_TYPE_OF). AFAR runs it correctly.
|
|
76
|
+
! end site
|
|
77
|
+
! spec (requirement): the base language is Fortran 2003, 2008 and 2018, and only the few Fortran features listed in the
|
|
78
|
+
! base-language section have unspecified behavior (SELECT TYPE with a CLASS IS guard is not one of them; its semantics are the
|
|
79
|
+
! Fortran standard's, with no OpenMP text of its own); a declare target procedure must be executable on a device.
|
|
80
|
+
! "While future versions of the OpenMP specification are expected to address the following features, currently their use may
|
|
81
|
+
! result in unspecified behavior." (5.2 §1.7 p.36 l.6-8)
|
|
82
|
+
! "Declare target directives apply to procedures and/or variables to ensure that they can be executed or accessed on a device."
|
|
83
|
+
! (5.2 §7.8 p.204 l.16-17)
|
|
84
|
+
! spec (this program): the declare target subroutine tag uses SELECT TYPE with a CLASS IS guard and is called in a target
|
|
85
|
+
! region; CCE 19, 20 and 21 build it but fail at the link (undefined symbol _EXTENDS_TYPE_OF), so the procedure cannot be
|
|
86
|
+
! executed on the device.
|