issue #464: global_ptr::local() assert for device pointers rather than returning nullptr

Merged
#340 · Created  · Last updated

Merged pull request

Merge pull request #340 into develop

868f3f6·Author: ·Closed by: ·2021-04-02

Description

Status

Ready for review.

Example failure from test/memory_kinds compiled with -DTEST_ISSUE464:

Test: memory_kinds.cpp Ranks: 2 *** FATAL ERROR (proc 0): ////////////////////////////////////////////////////////////////////// UPC++ assertion failure: on process 0 (pcp-d-10) at /home/pcp1/bonachea/UPC/bxx-cx5-cuda/bld/upcxx.assert1.optlev0.dbgsym1.gasnet_seq.ibv/include/upcxx/global_ptr.hpp:170 in function: const T* upcxx::global_ptr<const T, KindSet>::local() const [with T = int; upcxx::memory_kind KindSet = upcxx::memory_kind::cuda_device]() global_ptr<T>::local() does not create device pointers. Use device_allocator<Device>::local(gptr) instead. To have UPC++ freeze during these errors so you can attach a debugger, rerun the program with GASNET_FREEZE_ON_ERROR=1 in the environment. //////////////////////////////////////////////////////////////////////

Commits

  • issue #464: global_ptr::local() assert for device pointers rather than returning nullptr

    Resolves issue #464.

  • test/memory_kinds: exercise device gptr.(is_)local()

  • Update ChangeLog

0 attachments

0 comments

Loading commits...