Gráfico de commits

59 Commits

Autor SHA1 Mensaje Fecha
avinashkethineedi 6685d0ab60 Add fine grained memory buffers for work/sync arrays
* Add interanl put_mem/get_mem{_wave, _wg} functions to read/write to work/sync arrays
* Add condition check to ensure all MPI processes are on the same compute node for IPC conduit
2024-10-21 15:28:39 +00:00
Brandon Potter e419a8b963 Merge pull request #29 from ROCm/improve-ib-latency
Vectorize WQE segments writes
2024-10-11 11:55:48 -05:00
Yiltan Hassan Temucin 509277c034 fixed notifier bug 2024-10-10 06:45:43 -07:00
Yiltan Hassan Temucin b1134e8633 added notifier->sync() when we are not using cooperative groups
updated scope bug
2024-10-09 13:11:28 -07:00
Yiltan Hassan Temucin 63667a3167 Added Cooperative Groups configure option and header 2024-10-09 13:11:12 -07:00
Yiltan Hassan Temucin 1baa071edf Fix initialization order bug 2024-10-09 13:11:12 -07:00
Yiltan Hassan Temucin e2f6a65284 fixed barrier issue on MI250X 2024-10-08 13:18:04 -07:00
avinashkethineedi 92fb1abaf2 Add team information to the context
* Update roc_shmem_ctx_fence API to use team-relative PE numbering
* Update backend to populate team_opaque member of ROC_SHMEM_CTX_DEFAULT (used to store information about the team wrt TEAM_WORLD)
2024-10-04 17:56:15 +00:00
avinashkethineedi 979aed105a Add fence and quiet functionality
* Perform atomic stores to enforce memory ordering
2024-10-03 06:28:12 +00:00
Brandon Potter 787cf0ff3f Merge pull request #31 from BKP/ipc_bringup_fine_unit_09-26-24
Add IPC Simple Buffer Fine-grained Unit Tests
2024-10-01 15:12:30 -05:00
Brandon Potter 24b928a007 Poll the signal from one thread instead of all 2024-10-01 15:01:37 -05:00
Brandon Potter f85c46ec0a Bugfixes for the ipc unit tests 2024-09-26 13:40:05 -05:00
Edgar Gabriel c133ea18a5 fix assembly switch/case instruction
move the case statement out of the architecture specific section.
2024-09-20 20:25:40 +00:00
Muhammad Awad 3162d49b56 Vectorize WQe segments writes
Signed-off-by: Muhammad Awad <MuhammadAbdelghaffar.Awad@amd.com>
2024-09-17 20:34:18 -05:00
Brandon Potter 86a2f34539 Add missing header file 2024-09-10 09:35:02 -07:00
Brandon Potter 7411c45591 Conservatively use SEQ_CST atomics in IPC conduit 2024-09-10 09:34:45 -07:00
Brandon Potter 2806e1be79 Intermediate commit for rebase 2024-09-10 07:10:22 -07:00
Brandon Potter 45c29e7734 Minor updates to Nofifier sync method 2024-09-10 07:10:21 -07:00
Brandon Potter 359d6be797 Add sync method to notifier class 2024-09-10 07:10:21 -07:00
Brandon Potter 5b42cff96c Update Notifier fixture to Block 2024-09-10 07:10:21 -07:00
Brandon Potter 51c33b2a66 Updates to Notifier 2024-09-10 07:10:21 -07:00
Brandon Potter 039ea82777 Change read/write to load/store in Nofitier API 2024-09-10 07:10:21 -07:00
Brandon Potter 0c53a075f2 Fix problems with Notifier 2024-09-10 07:10:21 -07:00
Brandon Potter c4b7e0d91b Partial notifier 2024-09-10 07:10:21 -07:00
Brandon Potter e9fb01ab6b Merge pull request #27 from ROCm/ipc_bringup
Ipc bringup
2024-09-10 09:06:51 -05:00
Brandon Potter 375d145913 Merge pull request #25 from mawad-amd/fix-bad-auto
Fix bad auto
2024-09-09 16:30:17 -05:00
Avinash Kethineedi e58077e3cf Merge branch 'ipc_bringup' into ipc_atomics 2024-09-09 14:22:55 -05:00
Edgar Gabriel dfcacdc4a3 remove pSync from internal_bcast functions
remove the pSync arguments from the internal_broadcast functions,
they are not used anyway.
2024-09-09 12:06:30 -07:00
Muhammad Awad b811b2b683 Fix bad auto
Signed-off-by: Muhammad Awad <MuhammadAbdelghaffar.Awad@amd.com>
2024-09-05 18:39:02 -05:00
avinashkethineedi 7bbf34d334 remove local_pe calculation from puts, gets and atomics functions
* All the PEs are assumed to be accessible using IPC backend
2024-09-05 11:52:00 -07:00
avinashkethineedi 862421e0ca Update IPC object
* Update the state of the IPC object in the RO context class with the instance created in the RO backend
2024-08-28 12:31:01 -07:00
Edgar Gabriel 1ffe62bb2e utils.hpp: silence warnings
silence some warnings when compiling with debug flags.
2024-08-28 09:42:14 -07:00
Edgar Gabriel aae6295460 ipc/context_ipc_device.cpp: set barrier_sync
set the barrier_sync variable on the context during
object creation
2024-08-28 09:41:05 -07:00
avinashkethineedi e1e1ac6df6 Add atomics
* Add atomic_add, atomic_set, atomic_cas, atomic_fetch_add and atomic_fetch_cas to IPC backend
2024-08-28 08:30:46 -07:00
avinashkethineedi 45a8cb3354 Update IPC object
* Update the IPC object in the context class with the instance created in the IPC backend
2024-08-28 08:14:38 -07:00
Edgar Gabriel 0de3b5e6fc first cut on collectives and sync
code is based on the GPUIB implementations of the routines, which seem
however generic enough to work also for the IPC conduit.

Some code is in for broadcast, fcollect, and alltoall.
2024-08-27 15:03:38 -07:00
Edgar Gabriel e2e30b5339 remove device wait_until functions
adding the device versions of the wait_until* and test functions in the
ipc folder leads to linking errors of the functional tests. Remove them
and use for now the upper level versions of the functions, similarly to
the RO conduit. Might have to revisit this later again.
2024-08-27 15:03:32 -07:00
avinashkethineedi a9571ec002 Add buffers required for collectives 2024-08-22 09:28:09 -07:00
avinashkethineedi a59bdd4f6b Add IPC teams 2024-08-22 09:15:44 -07:00
avinashkethineedi c8b0f2378e Add gets and puts functionality to IPC context 2024-08-15 13:17:44 -07:00
avinashkethineedi c9dbcf80c2 Update context_ipc_gtest.cpp to use IPCbackend 2024-08-15 11:54:56 -07:00
avinashkethineedi b68867ee17 remove ipc_policy.{hpp & cpp} and context_ipc.{hpp & cpp}
* move ipc_policy.{hpp & cpp} to src
* rename context_ipc.{hpp & cpp} to context_ipc_device.{hpp & cpp}
2024-08-15 08:52:06 -07:00
avinashkethineedi 49779863c2 Add IPC backend
* add backend_ipc.{cpp & hpp}
* rename context_ipc.{cpp & hpp} to context_ipc_device.{cpp & hpp}
* add host interface to IPC backend
* add context_ipc_host.{cpp & hpp} to support host interface
* add USE_RO compile flag to enable support for single backend interface at a time
* add ipc_single script to build rocSHMEM with IPC backend
2024-08-14 22:59:02 -07:00
avinashkethineedi 24375a949e Code refactor
move ipc_policy.hpp and ipc_policy.cpp files to src, since they are used by all the conduits.
2024-08-14 20:44:35 -07:00
Brandon Potter 58c5a98b5d Add ipc unit_tests 2024-08-07 12:18:12 -07:00
Brandon Potter c865fcd4bb Fix memcpy_wave bug 2024-08-07 11:37:45 -07:00
Brandon Potter bb6e48dded Add assembly for gfx94x 2024-07-31 14:14:24 -05:00
Brandon Potter 862ef5713f Move inline asm into separate file 2024-07-30 14:53:19 -05:00
Brandon Potter 73303ca2d2 Move inline assembly into arch defines blocks 2024-07-30 12:56:32 -05:00
Muhammad Awad ebcfdb2f75 Remove dev_mtx_ that is no longer in the backend 2024-07-30 12:52:06 -05:00