Commit Graph

61 Commits

Author SHA1 Message Date
Edgar Gabriel 74ee25817e Merge pull request #30 from edgargabriel/topic/assembly-mi300-fix
fix assembly switch/case instruction
2024-09-23 12:12:43 -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
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
Edgar Gabriel d21d5aa431 Merge pull request #10 from edgargabriel/topic/ipc-context
topic/ipc context
2024-07-31 11:25:56 -05:00
Edgar Gabriel b1bc4a497a unit_tests: add ipc_context tests
add the initial outline of an ipc_context unit test. The current test
only invokes the ipc_context constructor, more tests will be added later
as the class is being populated.

Also, at the moment the unit test takes an ROBackend as an argument for
the constructor, not sure whether this will be the final solution.
2024-07-30 15:22:03 -07: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
Edgar Gabriel de750ddacc src/ipc: add context_ipc barebone code 2024-07-26 08:22:33 -07:00
Edgar Gabriel 6990f301b1 Merge pull request #9 from edgargabriel/topic/ipc-directory-reorg
src/ipc: IPC folder refactor
2024-07-25 09:53:39 -05:00
Edgar Gabriel 1183006e20 src/ipc: IPC folder refactor
mv ipc_policy.{hpp,cpp} into a separate folder as a start for the
standalone IPC conduit.

Unit tests and functional tests pass on the developmpent system.
2024-07-25 07:33:41 -07:00
Edgar Gabriel a3c338c310 Merge pull request #7 from BKP/ft_07-12-24
Update functional test driver.sh script
2024-07-15 15:40:21 -05:00
Brandon Potter ca36cc249e Update functional_tests driver.sh script 2024-07-15 08:45:41 -07:00
Brandon Potter 23f2983214 Create new ro_ipc config 2024-07-15 10:38:38 -05:00
Brandon Potter 39c5be18b1 Remove CACHED_HEAP option 2024-07-15 10:18:20 -05:00
Avinash Kethineedi ac3f87936f Merge pull request #5 from BKP/ut_07-11-24
Unit test fixes
2024-07-14 23:31:43 -05:00
Brandon Potter 06e51a8132 Update functional_tests driver.sh script 2024-07-12 15:08:46 -07:00
Edgar Gabriel 52b7a57506 Merge pull request #6 from BKP/warnings_07-11-24
Silence variable array warnings
2024-07-12 07:12:14 -05:00
Brandon Potter 719ee21da7 Silence variable array warnings 2024-07-11 13:50:11 -07:00
Edgar Gabriel d054fc66ea Merge pull request #4 from BKP/hyd-7c_07-11-24
hyd-7c
2024-07-11 13:03:42 -05:00