HIP should block the stream until callback is done. This change
will introduce extra marker that will block the queue.
Note: MT path doesn't really require extra marker, but the logic
is identical to avoid extra checks for direct dispatch
Change-Id: Ib90fd2d751adf337f5e43ac6098e84767530233b
[ROCm/hip commit: e43696d7ca]
This change is tied to the ROCclr cmake rework. ROCclr will now be built
as part of HIP itself.
All the dependencies on comgr and rocr have been moved into ROCclr
itself. This allows HIP to pull in all the required compiler/runtime
dependencies by simply linking against ROCclr. Note that ROCclr needs to
be configured from HIP cmake command line. If not, we will default to
LC + ROCr support.
Since HIP depends on ROCclr and ROCclr depends on OpenCL, HIP will
transitevly pull in all the required OpenCL headers. No need to keep a
local copy of them anymore.
Change-Id: Ib39f4929e88da1248be962490c150b10fc7abd3a
[ROCm/hip commit: 30f1fcaf53]
Linux Pro build uses the LLVM_ROOT variable to
specify where llvm is located. We must use a different
name, HIP_LLVM_ROOT for LLVM's prefix location.
Change-Id: I28baf8672217a438a5dd45829d9af04b3553f615
[ROCm/hip commit: 93b9384529]
- waitList was released before the awaitcompletion
causing stream sync after the async copies fail
- Enable the hipPeerToPeer_simple test
Change-Id: I1eeaa7e6320ab38c106902078f034dfec4c3f3ea
[ROCm/hip commit: acafb344c0]
Always allocate managed memory in ROCclr and backend will decide
what kind of memory to use. Currently ROCclr should fall to
GPU accessible system memory if HMM isn't available
Change-Id: I71328687b2dd4a3f563571f2b755079d82dca433
[ROCm/hip commit: 6430a308fc]
Add -r/--generate_rtc option to hip_embed_pch.sh to generate the
preprocessor expansion output of the HIP headers for hipRTC mode.
Generates an object hiprtc_header.o and shared library libhiprtc.so
which can be used for hipRTC online compilations. Enable
__HIP_ENABLE_RTC by default in the CMake files.
Change-Id: Ief51b695c9b31941d929e06f16872f95eea3619b
[ROCm/hip commit: 4dedd2436d]
hip_rtc.cpp refers to the symbol __hipGetPCH(), but that one can only be
found in hip_global.cpp. It's not referenced anywhere else, hence it
should be moved.
Change-Id: Ifc67b2f3b1b8344dec0e6c30d083d62288fb5e24
[ROCm/hip commit: 6debae4a14]
hipGraphAddHostNode and hipGraphAddMemcpyNode1D are not part of the HIP
graph implementation, hence they should not be exported.
Change-Id: Ia3d0188895fb4f64ebfa23d4a0a09c44438f878d
[ROCm/hip commit: 86486b2c4a]
- Accept hipMemAttachHost flag
- Don't allocate HMM memory if HMM is disabled in KFD
Change-Id: I3d386eb0a109a19c16a87a728944a3a6669f643a
[ROCm/hip commit: 31ae72a164]
On StreamBegincapture captures the parameters passed to APIs and respective node will be created and added to graph
All parameters are passed to STREAM_CAPTURE macro, it checks if stream in capture mode and redirects the call to the capture function and returns
Updated hipStream and hipEvent with capture parameters
Added handling for hipStreamBeginCapture & hipStreamEndCapture
Change-Id: Ic8926a7b4336c2cc81f0b3a9a224aa392c474134
[ROCm/hip commit: c35ba37287]
Currently LiquidFlash cannot be supported from Github Enterprise,
hence we need to be able to build with out it.
Allow this by setting -DWITH_LIQUID_FLASH=0.
Change-Id: If59afe45c02a1623639360dbcc3927360f16ebd3
[ROCm/hip commit: 9e545007bc]
Fix wrong mixing of current device and stream device in
ihipModuleLaunchKernel() and hipLaunchCooperativeKernel().
Fix missing hipSetDevice() in hipMemcpyWithStream* tests.
Change-Id: I09333bb40d239bb42c832df5ea16d17eeaeff5e7
[ROCm/hip commit: a95ff95bf7]
If the width is 0, hipMemset2D or 3D APIs should return success
doing nothing
Change-Id: I97f8825d090a73ee63145e52d2b6d2cc0eddade3
Change-Id: I9d62fee70929ad0c79b947aa4cbbc8ab898fb64a
[ROCm/hip commit: 2122a32034]
Early notification allows CPU command state to be processed earlier.
Otherwise state update will be delayed until the actual possible
wait.
Change-Id: I0e9d6c2ad88e3723eab2f6dc9a20f288f6c1ca0c
[ROCm/hip commit: 9fc0bddbf0]
Addresses the scenarios when the size passed is more than
the allocated size and when the deviceid is invalid
Change-Id: I6c9b62639096f655ffb61976905b1ce8c5f51ee7
Change-Id: I8a0d660924a8e2300c517aba6f9088626b8f6ef5
[ROCm/hip commit: 68161ff0dd]
For addMarker, assume T1 comes in first and enqueues a command C1.
Before T1 grabs the event_::lock_ it gets preempted. At this time,
T2 comes in, enqueues C2 and grabs the lock_ and updates event_. Now T1
wakes up and updates a older command C1 for the event.
Change-Id: Ia423782b23026302c40976385623cfdede32d70b
[ROCm/hip commit: c8b9257c0b]