Commit grafiek

13096 Commits

Auteur SHA1 Bericht Datum
Ajay GunaShekar 4a1a4aa472 SWDEV-560725 - remove final from amd_warp_functions (#1395)
final word used as a literal over a keyword.
2025-10-20 12:27:59 -07:00
Pengda Xie 29c2ca8cbc SWDEV-559867 - Fix CU mask printing (#1328) 2025-10-20 09:47:17 -07:00
Ioannis Assiouras 30a14a8a05 SWDEV-559166 - Fix potential data race in ReferenceCountedObject::release() (#1388)
Use fetch_sub(std::memory_order_acq_rel) on release
so the destroying thread acquires prior writes.
2025-10-20 17:15:56 +01:00
Julia Jiang ee4021d6c5 SWDEV-556212 - Update changelog for HIP 7.1 in develop (#1326)
* SWDEV-556212 - Update changelog for HIP 7.1 in develop

* Update CHANGELOG.md

* Update CHANGELOG.md
2025-10-20 11:41:58 -04:00
systems-assistant[bot] dae5b30a1a SWDEV-534207 - Solve more phoenix mem test failures (#545)
* SWDEV-534207 - fix 'Unit_hipFreeMipmappedArrayImplicitSyncArray - float' out of memory error with extent (1024, 1024, 1024) and 1 levels on 740M iGPUs. totalGlobalMem is not really the amount of device memory available for compute

* SWDEV-534207 - compare expected available memory within a range in Unit_hipMalloc3D_Basic; to take into account some bookkeeping overhead (instead of in exact 64MB chunks)

* SWDEV-534207 - fix missing setting of SvmGpuMemoryCreateInfo::interprocess in the 'fine' and 'fine uncached' memory and 'MemorySubAllocator' cases. Coarse allocation was added first; the flag was missed when the other three cases were added

* SWDEV-534207 - allow more room for the check of available memory after hipFree() in Unit_hipMalloc3D_Basic; it was till failing on 740M

---------

Co-authored-by: Gerardo Hernandez <gerardo.hernandez@amd.com>
Co-authored-by: systems-assistant[bot] <systems-assistant[bot]@users.noreply.github.com>
2025-10-17 15:49:57 +01:00
Satyanvesh Dittakavi 9d32badcb7 SWDEV-545950 - Update indentation in hip_prof_str.h for hipStreamCopyAttributes (#1352) 2025-10-14 17:35:17 +05:30
Ioannis Assiouras 538ebc5409 SWDEV-556877 - Ensure pinned memory is released if hsa copy fails (#1137) 2025-10-14 10:08:49 +01:00
SaleelK cc18890fe8 clr: Reset barrier_value_packet_ at init (#1162) 2025-10-13 22:01:46 -07: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
Pengda Xie d195d925e9 SWDEV-548034 - Separate sdma signal from compute in checkGpuTime (#1201) 2025-10-09 14:55:25 -07:00
Satyanvesh Dittakavi 6b85dcf227 SWDEV-557093 - Add nested tiled partition in HIP cooperative groups (#1166) 2025-10-10 00:21:44 +05:30
systems-assistant[bot] 1ae36dd856 SWDEV-538181 - Fix 1D buffered image copy (#441)
* SWDEV-538181 - Fix 1D buffered image copy

Fix wrong logics to copy to/from 1D buffered image
in PAL path.

---------

Authored-by: taosang2 <tao.sang@amd.com>
2025-10-09 09:47:11 -04:00
Ethan Trinh 5cc7a7356a SWDEV-553103 - Remove adobe and afterfx workaround (#865) 2025-10-08 13:03:37 -04:00
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
Gerardo Hernandez e45c56c0f8 SWDEV-1 - if hipconfig process invocation by cmake fails, produce a readable error and abort
* SWDEV-1 - if platform auto-detection via hipconfig fails, provide a meaningful error and do not try to parse the output
* SWDEV-1 - if getting HIP_VERSION via hipconfig fails, provide a meaningful error and do not try to parse the output
2025-09-26 14:50:57 +01:00
German Andryeyev bb1295bcdf SWDEV-547108 - Fix compilation errors under Windows (#1085)
Also correct AQL print under Windows
2025-09-26 09:42:50 -04: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
MachineTom 4a31affb76 Users/taosang/SWDEV-510994 - Refractor atomics header and tests (#902)
* SWDEV-550626 - Refactor atomics header and tests

1. Introduce __HIP_ATOMIC_BACKWARD_COMPAT.
By default we define __HIP_ATOMIC_BACKWARD_COMPAT=1 to
let hip atomic functions maintain old assumptions. if
users want to adopt the new behavior, that is , by default
assume no-fine-grained no-remote-memory, then they can
define __HIP_ATOMIC_BACKWARD_COMPAT=0 and get the new
behaviour.

2. Use  __HIP_ATOMIC_BACKWARD_COMPAT_MEMORY to replace
original __HIP_FINE_GRAINED_MEMORY  in atomic header.
And apply __HIP_FINE_GRAINED_MEMORY onto all 
atomicXXX_system() functions to prevent failure on memory
allocated by hipHostMalloc().

3. Replace HIP_TEST_FINE_GRAINED_MEMORY with
HIP_TEST_ATOMIC_BACKWARD_COMPAT_MEMORY in hip-tests.

4. Fix negative test errors.
    Fix managed memory test error on memory order.
    some other minor changes.
    As a result  all originally disabled tests are enabled.

5. Add more atomics tests in some cases.

6. Reduce test time in each case.
     Reduce iteration number to 1 for tests that cost too much time.

8. Put common codes into hip_test_common.hh
2025-09-25 10:58:59 -04:00
Ioannis Assiouras c53bdb9643 SWDEV-556866 - Added misssing include of rocrctx.hpp in rocurilocator (#1094) 2025-09-24 06:44:02 +01:00
SaleelK 34b9184686 clr: Fix memory corruption for memset nodes (#1068)
* Detect graph capture and use graph kernelarg memory for FillBuffer pattern
2025-09-23 17:17:33 -07:00
Ioannis Assiouras 97bc3af918 SWDEV-550882 - Add support for hipIpcMemLazyEnablePeerAccess (#817) 2025-09-23 00:05:51 +01:00
Ajay GunaShekar 0118184d22 SWDEV-554678 - Navi44 on windows (#936)
* SWDEV-554678 - Navi44 on windows

* SWDEV-554678 - Navi44 in palsettings
2025-09-22 08:52:41 -07: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
MachineTom 25922d08c3 SWDEV-539145 - Return error when ext_fine_grain_pool unavailable (#877)
Return error when ext_fine_grain_pool is unavailable for
hipHostMallocUncached, hipHostAllocUncached and
hipExtHostRegisterUncached.
Disable related tests on Navi4x where
ext_fine_grain_pool is unavailable
2025-09-21 19:25:28 -04:00
MachineTom c6c2fa212c SWDEV-1 Fix a bug of VGPRs (#1000)
Fix a bug of VGPRs due to a previous patch:
SWDEV-546223 - Get image support info from ISA meta
2025-09-21 19:23:12 -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
Stella Laurenzo 2e93b9f6cb [clr] Only enable comgr dynamic loading if it is a shared lib. (#1065)
Prior we were enabling dynamic loading mode if BUILD_SHARED_LIBS, but this is not correct. We should only be loading dynamically if the amd_comgr library itself is shared.

Background: we have a configuration where we use a static linked comgr stub in order to achieve LLVM isolation (it dynamically loads the comgr and compiler into a dedicated link namespace) in an otherwise dynamic linked clr.
2025-09-19 16:10:15 -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
Julia Jiang 1c10592be2 SWDEV-546376 - Fix CTS profiling failure (#976) 2025-09-19 13:38:28 -04:00
German Andryeyev ea89ddd589 SWDEV-547108 - Add dll loader for Windows build (#1004)
The build of ROCR backend will be enabled by default in Windows.
It requires the dll loader until ROCR dll will be always available in Windows for any configuration.
2025-09-19 11:25:30 -04: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
Godavarthy Surya, Anusha ce560304a8 SWDEV-548417 - Fix Memleaks in Graph (#713)
Co-authored-by: Anusha GodavarthySurya <Anusha.GodavarthySurya@amd.com>
2025-09-19 17:39:36 +05:30
Jaydeep 9f5b390db4 SWDEV-555484 - getQueueId uses hsa_queue's id which is not necessary to be bound by GPU_MAX_HW_QUEUES and hence accessing array beyond size cause data curruption. (#1040) 2025-09-19 14:31:27 +05:30
Jaydeep 99613f1009 SWDEV-555484 - Invalidate capturing stream only for null/legacy stream. (#1032) 2025-09-19 14:31:17 +05:30
German Andryeyev f3d672d507 SWDEV-552741 - Exclude OCLGetQueueThreadID from ocl tests (#1024)
The tests uses AMD OCL extension to check the queue thread id, but there is no queue thread with DD
2025-09-18 18:28:51 -04:00
SaleelK 149dc17c90 clr: Optimize doorbell ring (#1030)
*Lay foundation to batch packets efficiently for graphs
*Dynamically copy packets with max threshold set with
DEBUG_HIP_GRAPH_BATCH_SIZE, if not stagger packet copy with pow2
*Default threshold for DEBUG_HIP_GRAPH_BATCH_SIZE is 256
*If TS are not collected for a signal for reuse, create a new signal.
This can potentially increase signal footprint if the handler doesn't run
fast enough.
2025-09-18 15:02:10 -07:00
Ioannis Assiouras 5ac163a811 SWDEV-548770 - Added system scope acquire for all packets in gfx12 (#966) 2025-09-18 14:33:17 +01:00
lancesix 45b48fb987 SWDEV-555043 - Do not wait on signal if gpu in error state (#1023)
During a process tear-down we wait on all signals before releasing them:

    VirtualGPU::HwQueueTracker::~HwQueueTracker() {
      for (auto& signal : signal_list_) {
        CpuWaitForSignal(signal);
        signal->release();
      }
      [...]
    }

In the case where we exit the process after a GPU error that did not
cause an abort (ulimit -c == 0), waiting for the signal can be skipped.
With the device on the error state, no progress is made, and the signal
is probably never going to be modified again:

    inline bool WaitForSignal(hsa_signal_t signal, bool active_wait = false, bool yield = false) {
          [...]
          if (HIP_SKIP_ABORT_ON_GPU_ERROR && amd::Device::IsGPUInError()) {
            ClPrint(amd::LOG_ERROR, amd::LOG_SIG,
                    "Device not Stable, while waiting for Signal ="
                    "(0x%lx) for %d ns",
                    signal.handle, kTimeout4Secs);
            return true;
          }
          [...]
    }

However, after calling CpuWaitForSignal, when calling "release", we can
end-up on a signal dtor which also tries to wait on the signal.  Because
the GPU is the error state, we never receive the signal, and hang the
process during tear down.  This happens with the ProfilingSignal dtor:

    ProfilingSignal::~ProfilingSignal() {
      if (signal_.handle != 0) {
        if (hsa_signal_load_relaxed(signal_) > 0) {
          LogError("Runtime shouldn't destroy a signal that is still busy!");
          if (hsa_signal_wait_scacquire(signal_, HSA_SIGNAL_CONDITION_LT, kInitSignalValueOne,
                                        kUnlimitedWait, HSA_WAIT_STATE_BLOCKED) != 0) {
          }
        }
        hsa_signal_destroy(signal_);
      }
    }

This dtor should check that the GPU is not in the error state before
trying to wait, which is what this patch implements.

Bug: SWDEV-555043
Bug: SWDEV-553435
Bug: SWDEV-553679
Bug: SWDEV-555119
2025-09-18 14:32:04 +01:00
Ioannis Assiouras 5c1eebab84 SWDEV-543723 - Change agentInfo parameter in hostAlloc to void* (#995) 2025-09-18 11:43:15 +01:00
Julia Jiang 5db71b8e4c SWDEV-551652 - Adding one change in 7.0 changelog (#960)
Co-authored-by: Istvan Kiss <istvan.kiss@amd.com>
2025-09-17 09:22:26 -07:00
systems-assistant[bot] 0018a4e70c SWDEV-541623 - cuda parity hipLaunchCooperativeKernelMultiDevice and hipExtLaunchMultiKernelMultiDevice (#415)
* SWDEV-541623 - cuda parity hipLaunchCooperativeKernelMultiDevice and hipExtLaunchMultiKernelMultiDevice

numDevices does not match the system devices

* SWDEV-541623 -  enable Unit_hipExtLaunchMultiKernelMultiDevice_Negative_MultiKernelSameDevice

---------

Co-authored-by: agunashe <ajay.gunashekar@amd.com>
2025-09-17 08:33:59 -07:00
SaleelK ec5e9673ad clr: Use current device copy engine for inter-dev copy (#945)
* For inter-device copies always use the SDMA engine of current device
* ROCr uses srcAgent SDMA engine, and it could be a remote device
2025-09-16 12:56:07 -07:00
systems-assistant[bot] d5fc1b3703 SWDEV-548838 Add local and global fence support for barrier function (#437)
* SWDEV-548838 Add local and global fence support for barrier function

The original barrier function didn't distinct between local and global scope. There was only __CLK_LOCAL_MEM_FENCE which triggers both local and global fence. This commit introduces __CLK_LOCAL_MEM_FENCE and __CLK_GLOBAL_MEM_FENCE that properly distinguish the scopes. 

---------

Co-authored-by: Tim <Tim.Gu@Amd.com>
Co-authored-by: systems-assistant[bot] <systems-assistant[bot]@users.noreply.github.com>
Co-authored-by: Tim Gu <timgu102@amd.com>
2025-09-16 14:20:57 -04:00