Commit Graph

2521 Commits

Author SHA1 Message Date
SaleelK c105dcd05b clr: Use graph segment scheduling to process HIP Graphs (#1372)
* clr: Use graph segment scheduling to process HIP Graphs

* Add a broader path to use capture packet capture for all topologies
* Refactor code
* Use DEBUG_HIP_GRAPH_SEGMENT_SCHEDULING to toggle new vs classic path,
  Enabled by default

* clr: Few fixes and improvements

* clr: Detect complex graphs to take classic path

* Use DEBUG_HIP_GRAPH_SEGMENT_SCHEDULING=2 to force segment scheduling
  path

* clr: Fix a cornercase stack corruption

* clr: Track commands of segments instead of snapshots

* clr: Fix Batch dispatch logic

* Track fence_dirty_ flag for command of other streams
* Dependency resolution markers can now accomodate dirty fence on cross
  streams

---------

Co-authored-by: Ioannis Assiouras <Ioannis.Assiouras@amd.com>
Co-authored-by: Godavarthy Surya, Anusha <agodavar@amd.com>
2025-12-01 12:49:26 -08:00
vstojilj 77f58ceb9f SWDEV-558557 - Remove duplicate nodes when capturing hipMemcpyAsync (#1226) 2025-12-01 11:25:13 +01:00
vstojilj 1c09c87cc7 SWDEV-564927 - Allow sizeBytes to be 0 when hipMemsetAsync is captured (#1849) 2025-11-27 17:13:33 +01:00
Godavarthy Surya, Anusha 2e1c37a926 SWDEV-490861 - Remove recursion and extra loop in hipGraphLaunch (#1792) 2025-11-27 10:25:08 +00:00
Shadi Dashmiz 962b99f925 SWDEV-567514: Remove default stream wait (#1977)
- when virtual map command is called

- can create deadlock

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
2025-11-26 15:11:52 -05:00
AidanBeltonS d849b88aef SWDEV-558080 - Add recommended granularity (#1176)
* Add recommended granularity

* Improve granularity testing

* Update based on feedback
2025-11-26 16:10:58 +00:00
Karthik Jayaprakash 740a06d567 SWDEV-559267 - Use CLPrint to DevLogPrintf with Log Level - detail debug. (#1160) 2025-11-25 19:25:32 -05:00
German Andryeyev 93682f2f75 SWDEV-567852 - Clean-up hip::init() (#1948) 2025-11-25 19:05:41 -05:00
Pengda Xie 6c31785eaf SWDEV-562761 - Cleanup static fatbin on runtime teardown (#1873) 2025-11-24 21:57:46 -08:00
Marius Brehler 2dc32d645b Explicitly load versioned libamdhip64.so (#1872)
* Explicitly load versioned libamdhip64.so

* Fix syntax errors

* Fix when patching happens in Windows workflow

---------

Co-authored-by: Joseph Macaranas <145489236+jayhawk-commits@users.noreply.github.com>
Co-authored-by: ammallya <ameyakeshava.mallya@amd.com>
2025-11-24 10:05:05 -08:00
sluzynsk-amd 2cf9faa93f SWDEV-563777 - fix warnings related to inconsistent overrides (#1625)
This patch adds missing override keywords. Fixes this class of warnings.

Signed-off-by: Sebastian Luzynski <Sebastian.Luzynski@amd.com>
2025-11-24 18:50:07 +01:00
Ioannis Assiouras 7313c3752a SWDEV-567475 - Fix failures in graph tests due to GraphExec destroy h… (#1917) 2025-11-22 23:01:47 +00:00
Satyanvesh Dittakavi 07dd4c85e7 SWDEV-546308 - Implement hipKernelGetParamInfo API (#1783) 2025-11-12 14:09:26 +05:30
jofrn 8f9da259ac Fix memory leak in hip_fatbin.cpp UncompressAndPopulateCodeObject (#1692)
Wrap amd_comgr_data_t item returned from action_data_get_data() in
ComgrDataUniqueHandle to ensure it gets released.
2025-11-11 16:48:06 -05:00
Todd tiantuo Li cf536a8c1a SWDEV-554372 - Add 3 HIP_GET_PROC_ADDRESS_xxx flags (#1771) 2025-11-10 23:29:40 -08:00
Jin Jung 324a5519b9 SWDEV-563842 - Fix Memory Address Offset Bug (#1749)
* SWDEV-563842 - Fix Memory Address Offset Bug

* Revert "SWDEV-563842 - Fix Memory Address Offset Bug"

This reverts commit 477958dc48300ee1fe0166aa6f0d3d8125b91f5e.

* SWDEV-563842 - Fix Memcpy Address Offset Bug

* SWDEV-563842 - Find Memcpy Device Address Offset

* Revert "SWDEV-563842 - Find Memcpy Device Address Offset"

This reverts commit 6c75a9e5b58b7dfabb9e3f91fa3dd892d42639cc.

* Revert "SWDEV-563842 - Fix Memcpy Address Offset Bug"

This reverts commit 0b89072a988074aa4da4e8fc7ba04c554f31ed44.

* SWDEV-563842 - MemObjMap_ Offset Support

This patch fixes the buffer offset handling bug.

* Revert "SWDEV-563842 - MemObjMap_ Offset Support"

This reverts commit 37fce3382465e3420721e5277377f943ec2b30a1.

* SWDEV-563842 - External Memory Buffer View
2025-11-09 12:52:35 -08:00
Victor Zhang 7580052878 SWDEV-564318 - Add support for allocating uncached device memory (#1670) 2025-11-09 12:51:41 -05:00
Satyanvesh Dittakavi 478cee0f68 SWDEV-559525 - Add the HIP_POINTER_ATTRIBUTE_IS_LEGACY_HIP_IPC_CAPABLE attribute support (#1647)
* SWDEV-559525 - Add the HIP_POINTER_ATTRIBUTE_IS_LEGACY_HIP_IPC_CAPABLE attribute implementation

* Update indentation in hip_memory.cpp
2025-11-06 12:07:32 +05:30
Scott Todd fdbafd7757 Revert "SWDEV-554372 - Add 3 HIP_GET_PROC_ADDRESS_xxx flags (#1057)" (#1690)
Reverts ROCm/rocm-systems#1057

Suspected of breaking the build, see https://github.com/ROCm/rocm-systems/pull/1057#issuecomment-3487715129

Logs: https://github.com/ROCm/rocm-systems/actions/runs/19062134668/job/54444052479#step:12:315
```
[rocprofiler-sdk] FAILED: source/lib/rocprofiler-sdk/CMakeFiles/rocprofiler-sdk-object-library.dir/hip/abi.cpp.o 
[rocprofiler-sdk] ccache /opt/rh/gcc-toolset-12/root/usr/bin/c++ -DAMD_INTERNAL_BUILD=1 -DGLOG_USE_GLOG_EXPORT -DROCPROFILER_DL=1 -DROCPROFILER_HAS_GHC_LIB_FILESYSTEM=1 -DROCPROFILER_SDK_USE_SYSTEM_RCCL=0 -DROCPROFILER_SDK_USE_SYSTEM_ROCDECODE=0 -DROCPROFILER_SDK_USE_SYSTEM_ROCJPEG=0 -DUSE_PROF_API=1 -DYAML_CPP_STATIC_DEFINE -D__HIP_PLATFORM_AMD__=1 -Drocprofiler_EXPORTS=1 -I/__w/rocm-systems/rocm-systems/TheRock/build/profiler/rocprofiler-sdk/build/source/include -I/__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/source/include -I/__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/source -I/__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/yaml-cpp/include -I/__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/ptl/source -I/__w/rocm-systems/rocm-systems/TheRock/build/profiler/rocprofiler-sdk/build/external/ptl/source -isystem /__w/rocm-systems/rocm-systems/TheRock/build/core/clr/dist/include -isystem /__w/rocm-systems/rocm-systems/TheRock/build/core/ROCR-Runtime/dist/include -isystem /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/filesystem/include -isystem /__w/rocm-systems/rocm-systems/TheRock/build/profiler/rocprofiler-sdk/build/external/glog -isystem /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/glog/src -isystem /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/fmt/include -isystem /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/external/elfio -isystem /__w/rocm-systems/rocm-systems/TheRock/build/compiler/amd-comgr-stub/dist/include -isystem /__w/rocm-systems/rocm-systems/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib/pkgconfig/../../include -isystem /__w/rocm-systems/rocm-systems/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib/pkgconfig/../../include/libdrm -isystem /__w/rocm-systems/rocm-systems/TheRock/build/third-party/sysdeps/linux/elfutils/build/dist/lib/rocm_sysdeps/include -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -W -Wall -Wno-unknown-pragmas -faligned-new -rdynamic -fstack-protector-strong -Wstack-protector -MD -MT source/lib/rocprofiler-sdk/CMakeFiles/rocprofiler-sdk-object-library.dir/hip/abi.cpp.o -MF source/lib/rocprofiler-sdk/CMakeFiles/rocprofiler-sdk-object-library.dir/hip/abi.cpp.o.d -o source/lib/rocprofiler-sdk/CMakeFiles/rocprofiler-sdk-object-library.dir/hip/abi.cpp.o -c /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/abi.cpp
[rocprofiler-sdk] In file included from /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/abi.cpp:26:
[rocprofiler-sdk] /__w/rocm-systems/rocm-systems/projects/rocprofiler-sdk/source/lib/common/abi.hpp:62:27: error: static assertion failed: size of the API table struct has changed. Update the STEP_VERSION number (or in rare cases, the MAJOR_VERSION number)
[rocprofiler-sdk]    62 |             sizeof(TABLE) == ::rocprofiler::common::abi::compute_table_offset(NUM),                \
```
2025-11-04 14:29:58 -08:00
Todd tiantuo Li 7573fa168d SWDEV-554372 - Add 3 HIP_GET_PROC_ADDRESS_xxx flags (#1057) 2025-11-04 00:16:12 -08:00
Satyanvesh Dittakavi f332888366 SWDEV-560304 - Fix segfault with invalid stream (#1360) 2025-11-01 00:04:44 +05:30
Jaydeep 10763f0e7a SWDEV-559505 - Enable back memset optimization and handle the cases when setParam can change the number of AQL packets for memset graph node. (#1320)
Co-authored-by: jaydeeppatel1111 <jaypatel@amd.com>
2025-10-31 22:49:14 +05:30
Ioannis Assiouras 1dd0237cb2 SWDEV-563752 - Allow hipMemLocationTypeHost in hipMemSetAccess even if memory was created on the device (#1620)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-10-31 13:57:36 +00:00
dsicarov-amd 4915496bf9 SWDEV-533237 Add hipOccupancyAvailableDynamicSMemPerBlock API (#899)
* SWDEV-533237 Add initial support for hipOccupancyAvailableDynamicSMemPerBlock API

* SWDEV-533237 Add hipOccupancyAvailableDynamicSMemPerBlock wrapper for nvidia

* SWDEV-533237 Add implementation of hipOccupancyAvailableDynamicSMemPerBlock API

* SWDEV-533237 Add LDSAlignment field in Isa table

---------

Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-10-29 10:58:42 +01:00
Ajay GunaShekar f8e3858659 remove usage of HIP_RETURN in internal function (#1359) 2025-10-27 15:37:46 -07:00
Rahul Manocha f5d901f016 SWDEV-546311 - implement hipKernelGetLibrary & hipLibraryEnumerateKer… (#1143)
* SWDEV-546311 - implement hipKernelGetLibrary & hipLibraryEnumerateKernels API

* Fix for LibraryEnumerateKernel and KernelGetName

* Update Enumerate Kernels to handle 0 numKernels

* Minor fixes to function names

* fix error checking in internal function

* Update changelog for new apis

---------

Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-10-27 14:13:17 -07:00
Shadi Dashmiz 3e59eebf17 SWDEV-558510:Correct max mem per multiprocessor value (#1207)
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
2025-10-27 15:45:06 -04:00
SaleelK f301053740 clr: Improve logging (#1457) 2025-10-25 15:55:27 -07:00
Rakesh Roy e9dac39102 SWDEV-560065 - Revert changes to align error code with Cuda when stream capture is tried on Legacy stream (#1337)
* SWDEV-560065 - Revert "SWDEV-555484 - Invalidate capturing stream only for null/legacy stream. (#1032)"

This reverts commit 99613f1009.

* SWDEV-560065 - Revert "SWDEV-542700 - Return an error if stream capture is attempted on the null stream while a stream capture is active. (#450)"

This reverts commit 0647cf1d28.
2025-10-24 21:33:25 +05:30
Jatin Chaudhary 48313b8655 SWDEV-1 add missing hiperror entries (#1450) 2025-10-24 09:29:27 +01:00
MachineTom 5f76cb916d SWDEV-555888 - Refactor Numa code (#1191)
1. Create a set of mini numa interface.
In Linux, the interface is based on system call rather than libnuma.
In Windows, the interface can also work, but the policy class is dummy.
Different from Linux, Windows doesn't provide numactl tool or numa lib to setup numa policy, thus
the default policy is followed in Windows, that is, using the closest host numa node to allocate
pinned host memory in hipHostMalloc().
To get the closest host numa node of a GPU device, you need query the new attribute
hipDeviceAttributeHostNumaId. Then you can create a thread with CPU affinity on the numa node.
For example, reference the test in hip-tests/catch/perftests/memory/hipPerfHostNumaAllocWin.cc.

2. Remove pfnSetThreadGroupAffinity and pfnGetNumaNodeProcessorMaskEx as the functions have been exposed since Win7 and Win server 2008.

3. Other minor fixes.
2025-10-23 21:56:15 -04:00
Ioannis Assiouras 602ea0be1e SWDEV-558078 - Fix use-after-free in graph tests due to AsyncEventHandler (#1502) 2025-10-23 22:49:24 +01:00
Ioannis Assiouras 6d6b136374 SWDEV-559166 - Fix data races in GetSubmissionBatch, CaptureAndSet and SetQueueStatus (#1441) 2025-10-23 12:18:31 +01:00
Jimbo 37f2be9140 SWDEV-554608 - Add hipHostRegisterIoMemory for hipHostRegister (#962)
* SWDEV-554608 - Add hipHostRegisterIoMemory for hipHostRegister

* SWDEV-554608 - Add hipHostRegisterIoMemory for hipHostRegister

* SWDEV-554174 Added hipHostRegisterIoMemory flag in test cases

* SWDEV-554174 : Did formatting corrections

* SWDEV-554608 - set HSA_AMD_MEMORY_POOL_UNCACHED_FLAG if IoMemory is set

* SWDEV-554608 - set HSA_AMD_MEMORY_POOL_UNCACHED_FLAG if IoMemory is set

* SWDEV-554608 - Add hipHostRegisterIoMemory for hipHostRegister

---------

Co-authored-by: Anavena Venkatesh <Anavena.Venkatesh@amd.com>
Co-authored-by: Rambabu Swargam <rambabu.swargam@amd.com>
2025-10-22 20:25:59 -04:00
Jatin Chaudhary ee93c9ddab SWDEV-545100 - add two SPIRV targets (#1037) 2025-10-22 11:39:45 -04:00
Satyanvesh Dittakavi 46e683d41a SWDEV-545950 - Add hipStreamCopyAttributes API Implementation (#914)
* SWDEV-545950 - Add hipStreamCopyAttributes API Implementation

* Add unit test for hipStreamCopyAttributes API

* Add ChangeLog and nvidia mapping for the API

* Update rocprofiler-sdk with new HIP API details

* [rocprofiler-sdk] handle hipStreamCopyAttributes in stream tracing service

- this new HIP function has multiple stream arguments and needs to be skipped because it does not have an explicit create/destroy/set functionality

* Update HIP_RUNTIME_API_TABLE_STEP_VERSION in clr and rocprofiler-sdk

* Resolve merge conflicts

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
2025-10-12 19:57:05 +05:30
Godavarthy Surya, Anusha d3cc2c7668 SWDEV-524745 - Part-III Add multi device support for hip graph (#814)
- Retrieve the list of devices linked to each branch using stream ID x.
- Identify the necessary streams for each device to facilitate graph execution.
- Create the necessary streams for each device to ensure successful graph execution.
- Implement support for launching a multi-device, single-branch graph.

Co-authored-by: Anusha GodavarthySurya <Anusha.GodavarthySurya@amd.com>
2025-10-10 10:27:27 +05:30
cadolphe-amd 207a278d41 SWDEV-516307 - Clean up ICD references in HIP (#1019)
Moved default empty dispatch table and associated Platform initialization for HIP from fixme.cpp into the respective struct definitions.
2025-10-08 09:49:35 -04:00
Rahul Manocha 27ec19116d SWDEV-557828 - fix hip-tests on cuda (#1152)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-10-07 08:28:56 -07:00
Sam Ruscica 135c38b41c SWDEV-553436 Created wrapper functions for file read and file write (#935) 2025-10-07 09:42:22 -04:00
Jaydeep 98d6d268a0 SWDEV-556588 - Handle graph node set params and disabled nodes for AQL packet batching. (#1099) 2025-10-06 13:26:12 +05:30
Rahul Manocha 538f1c3b74 SWDEV-556205 - fix segfault in hiprtc (#1058)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-09-26 09:06:37 -07:00
Rahul Manocha 2bc561d404 SWDEV-557057 - fix for datatype for hipMemcpy3DBatchAsync (#1114)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-09-25 13:53:23 -07:00
Godavarthy Surya, Anusha fb72d7f851 SWDEV-524746 - Part-II Add multi device support for hip graph. Updated kernel arg manager for each device (#813)
- Updated kernel arg manager to support allocating kernel args on multiple devices for single graph.
- Updated AQL path to capture on the device where graph node is added.

Co-authored-by: Anusha GodavarthySurya <Anusha.GodavarthySurya@amd.com>
2025-09-25 20:38:18 +05:30
Ioannis Assiouras 97bc3af918 SWDEV-550882 - Add support for hipIpcMemLazyEnablePeerAccess (#817) 2025-09-23 00:05:51 +01:00
Shadi Dashmiz 9b350754cc SWDEV-555084: Fix the python script (#996)
- no need to manually updated the newly generated hip_prof_str.h

Signed-off-by: shadi <shadi.dashmiz@amd.com>
2025-09-22 08:41:19 -04:00
Todd tiantuo Li 7137c7f3d8 SWDEV-541478 - return hipSuccess for hipTexObjectCreate TypePitch2D with zero width or height (#712) 2025-09-19 20:48:01 -07:00
Jatin Chaudhary e79eaaa8a5 SWDEV-546287 - Implement hipLibrary load/unload (#975) 2025-09-19 22:23:49 +01:00
JonathanLichtnerAMD f31afe1d20 [HIP CLR] Make hipMemPtrGetInfo consistent with malloc and hipMalloc (#1005)
hipMemPtrGetInfo was returning the error hipErrorInvalidValue if it
was called on a nullptr.  However, this does not match the malloc
convention where a nullptr has size zero;  for example,
malloc_usable_size() returns zero if called on a nullptr.

This commit changes hipMemPtrGetInfo to set the size to zero and
return hipSuccess when called with a nullptr.  (This also fits with
hipMalloc and hipFree usage, since hipMalloc of size zero results in a
nullptr, and hipFree of a nullptr is successful.)
2025-09-19 12:53:41 -06:00
Godavarthy Surya, Anusha 538528d1e5 SWDEV-548417 - Fix Memleaks in Graph (#973)
Command enqueued on the graph internal stream are not released add stream during graphExec release

Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-09-19 17:45:01 +05:30