Commit Graph

77 Commits

Author SHA1 Message Date
Brandon Potter 0659f8d93c Poll the signal from one thread instead of all 2024-09-27 15:17:57 -05:00
Brandon Potter db221b022a Change notifier max thread block value to account for MI300 CPX 2024-09-27 11:17:53 -05:00
Brandon Potter 56b2ed699b Reset config options to original values 2024-09-27 11:17:11 -05:00
Brandon Potter f85c46ec0a Bugfixes for the ipc unit tests 2024-09-26 13:40:05 -05:00
Brandon Potter 46fdb1851c Update fine-grained simple tests 2024-09-10 09:35:41 -07: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 678564ba3c Add an extra assertion check for nullptr 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 1289d50be5 Change notifier fixture to prep for other fixtures 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 da93542c40 Add simple fine test 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 fc45d7a0d3 Merge pull request #21 from avinashkethineedi/ipc_atomics
IPC atomics
2024-09-09 14:23:21 -05:00
Avinash Kethineedi e58077e3cf Merge branch 'ipc_bringup' into ipc_atomics 2024-09-09 14:22:55 -05:00
Edgar Gabriel 7f6cc34239 Merge pull request #22 from edgargabriel/topic/ipc_collectives
add support for sync_all, barrier_all, broadcast, fcollect, and alltoall
2024-09-09 14:14:57 -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
Avinash Kethineedi 32657cb670 Merge pull request #23 from avinashkethineedi/fix_IPC_in_RO
Fix IPC in RO
2024-09-06 14:05:47 -05: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 9c9ef4ffd3 Comment out ping pong test
* ping pong test fails sporadically
* issues with roc_shmem_wait_until
2024-08-28 12:40:51 -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
Avinash Kethineedi 0c86939a30 Merge pull request #20 from avinashkethineedi/ipc_teams
IPC Teams
2024-08-23 15:28:50 -05:00
Avinash Kethineedi 1fbe08ed76 Merge pull request #19 from avinashkethineedi/ipc_gets_and_puts
IPC gets and puts
2024-08-23 15:28:01 -05:00
Avinash Kethineedi 73365cfefd Merge pull request #18 from avinashkethineedi/ipc_backend
IPC backend
2024-08-23 15:26:00 -05: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
Avinash Kethineedi 733cb09e2a Merge pull request #16 from BKP/ipc_bringup_coarse_unit_08-07-24
Create unit tests for simple buffer transfers using coarse-grained memory
2024-08-07 15:05:30 -05: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
Edgar Gabriel efa075ffc6 Merge pull request #11 from BKP/ipc_07-30-24
MI300X RO Support
2024-08-01 15:34:41 -05:00
Brandon Potter bb6e48dded Add assembly for gfx94x 2024-07-31 14:14:24 -05:00