issue #464: global_ptr::local() assert for device pointers rather than returning nullptr
Dan Bonachea
Branch: bonachea/upcxx:issue464-gptr-device-local
Branch: berkeleylab/upcxx:develop
Merged
Merged pull request
Merge pull request #340 into develop
Merge pull request #340 into develop
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