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