NVHPC 25.11
59 observed issues; 0 regressions from the previous version, marked below. Most serious first: wrong results, then issues whose legality is settled, then regressions, then how widely an issue fails.
Wrong answers (24)
- A lastprivate item smaller than 8 bytes on target teams distribute parallel for comes back as 0 or a garbage value Open
- An array mapped always, from next to defaultmap(firstprivate: aggregate) is not copied back (fuzz seed 1978) Open
- An array mapped tofrom next to defaultmap(firstprivate: aggregate) is not copied back (fuzz seed 98) Open
- Defaultmap(firstprivate) drops the copy-back of explicitly mapped variables Open
- Lastprivate on distribute in a target region loses the final value, even with an explicit map Open
- Lastprivate on target teams distribute parallel do simd collapse(2) with num_threads gives a varying wrong value Open
- Lastprivate on target teams distribute parallel for accepted silently, value lost Open
- Lastprivate on target teams distribute parallel for does not imply map(tofrom), value lost Open
- Map(present, ...) of an absent variable is accepted and ignored (no error termination) Open
- Scalar with the TARGET attribute is treated as firstprivate in a target region (device write lost) Open
- Scalar with the TARGET attribute is treated as firstprivate in a target region (device write lost) Open
- defaultmap(to: scalar) drops a reduction's copy-back Open
- map(always, tofrom:) after map(to:): not copied back Open
- num_threads with a * reduction gives 0 Open
- nvc: use_device_ptr gives a garbage pointer when the if clause of target data is false Open
- nvfortran -acc: derived-type variable without a data clause is not copied back from a serial region Open
- nvfortran -acc: gang worker collapse(2) reduction with a nested vector reduction loses whole inner loops Open
- nvfortran -mp=gpu: defaultmap(from) or defaultmap(alloc) shifts explicitly mapped allocatable arrays Open
- nvfortran -mp=gpu: depend(inoutset) on target nowait accepted and ignored, wrong answer Open
- nvfortran -mp=gpu: lastprivate on target parallel do does not imply map(tofrom), final value lost Open
- nvfortran -mp=gpu: write to a declare target module scalar in a target region is lost (implicit map) Open
- parallel num_threads inside distribute: writes lost (25.11) Fixed in 26.9
- defaultmap(to: pointer) on a target region copies the pointer target back to the host Open
- With a defaultmap clause on target, an explicitly mapped map(tofrom) scalar is not copied back, and with defaultmap(tofrom) an array in map(alloc) or map(to) is copied back Open
Crashes, hangs and errors at run time (14)
- barrier in combined target parallel: hang Open
- depend naming an implicitly mapped array: illegal address Open
- nvc/nvfortran -mp=gpu: compile succeeds but the kernel is missing at run time ("Failed to find device function") for function pointers, static locals, VLAs, long double, type-bound calls Open
- nvfortran -acc: ASSOCIATE construct in a parallel loop ends in CUDA_ERROR_ILLEGAL_ADDRESS Open
- nvfortran -mp=gpu: dist_schedule(static, 4) on target teams distribute parallel do ends in CUDA_ERROR_ILLEGAL_ADDRESS Open
- nvfortran aborts on use_device_ptr of a C_PTR to mapped data ("data in use_device clause was not found") Open
- allocatable component of a mapped structure: illegal address Open
- mapping a derived type with a length type parameter aborts Open
- nvfortran -acc -gpu=mem:managed: host access to an allocatable after !$acc shutdown ends in SIGSEGV Open
- the allocatable component of a mapped structure is not mapped with separate memory Open
- NVHPC: update from of a structure overwrites its attached pointer member Open
- mapping a derived type with a length type parameter faults with separate memory Open
- CCE: update to of a pointer root with an allocatable scalar component fails Open
- NVHPC: pointee listed before its parent in one map list faults in separate memory Open
Compiler crashes and hangs (12)
- nvc -mp=gpu: compile does not finish with dist_schedule(static, 4) on target teams distribute parallel for Open
- character value in a loop construct: unsupported Open
- collapse on target simd: translation failure Open
- default(none) with reduction and lastprivate: compiler crash Open
- firstprivate on target parallel with a do loop: translation failure Open
- nvc -mp=gpu: "Compiler failed to translate OpenMP region" for firstprivate on a parallel for in a target region Open
- nvc rejects ordered in a target parallel for with the ordered clause, and its front end then crashes intermittently Open
- nvfortran -mp=gpu: fort2 crashes (signal 11) on a whole-array assignment to a module allocatable in target teams loop Open
- nvfortran/nvc -mp=gpu: if clause on a parallel loop in a target region gives an internal NVVM error instead of the documented diagnostic Open
- nvc 25.11 crashes compiling a target nowait region in the worksharing loop of a parallel region Fixed in 26.9
- nvc/nvfortran -acc: atomic update x = x + v + 1 rejected, then internal compiler error (nvc) or fort2 crash (nvfortran) Open
- dynamic dispatch of a type-bound procedure in device code makes the compiler fail Open
Legal code refused at compile or link time (9)
- SELECT TYPE, CLASS(*) and finalization are not supported in device code Open
- a named declare mapper (map(mapper(id), ...)) is not supported Open
- declare reduction on a derived type is not implemented Open
- defaultmap(firstprivate: scalar) with lastprivate: ICE Open
- end distribute simd: syntax error Open
- nvfortran rejects a module's named-constant array referenced in a declare target routine Open
- target simd without end directive: rejected Open
- type-bound procedure calls in device code are rejected Open
- assumed-length character dummy in a map clause: ICE Fixed in 26.9
Fixed or changed in this version
None.