Fixes the elapsed time for the scenarios where HIP API takes one of the start/stop events
and another one is recorded using hipEventRecord.
Change-Id: I51831b2651fc8e7207ff0e3fcc6dc7c1b4239fa8
There is a small window where a thread can go to sleep in
Monitor::wait after releasing the lock but before another thread
notifies the monitor and updates the on-deck thread.
A simple approach to fix this problem is to wake-up the Monitor::wait
every 10 milliseconds and check if it is on-deck.
Change-Id: I4b9abda89d1fc653cdae2b4c84cdda01efde1cf2
Reduce the size of the queueLock and lastCmdLock critical sections
to improve lock contention performance. The smaller the critical
sections are the better.
lasCmdLock is still needed to guarantee that getLastEnqueueCommand_
can retain the command before it is swapped out and released.
Change-Id: Id35d4a77c035b2da0de4c15568b153d49e958bb7
This reverts commit becc687747.
Reason for revert: All the PSDBs on the CI are failing with the below error and its been root caused to this commit:
......................................................................................... Passed 0.59 sec 99% tests passed, 1 tests
failed out of 211 Total Test time (real) = 287.02 sec The following tests FAILED: 139 - directed_tests/runtimeApi/memory/hipMemcpyNegativeMThrdMSize_Negative_tests.tst
(Child aborted) Errors while running CTest Restoring clocks to: auto
Change-Id: I4ea0e14ba5f92cd61677f4a3b9482fea00902310
Replace constexpr with const in kernel source
codes because some kernel compiler doesn't
support constexpr.
Replace scheduler with __amd_rocclr_scheduler
due to name change.
Change-Id: I1ad4ddcdf1df5237b83e1ea2447eb39a19f7dc4a
getLastQueuedCommand(true) will implictly retain the last command, hence if we're not putting it in the waitlist, we should release it.
Change-Id: I1ad4ddcdf1df5237b83e1ea2447eb39a59f7dc3a
root cause - cooperative queue is not inserted into queuePool_ (HSA queues) of ROC device calss causing a crash when creating hostcall buffers for printf
Change-Id: I3f9aceb4e5fe6a7c7a2a549a4bb0a3511fe02799
There is no synchronize with relationship between the monitor micro-
lock and the onDeck microlock, so it is possible for an onDeck.load to
move above a contendersList.store, or a contendersList.load to move
above an ondeck.store.
To fix this issue a full memory fence (mm_mfence on x86) is needed
after the last store in the contendersList and onDeck critical regions.
Change-Id: I5beb7dfe0d21010c5bf00cd65d59b9c7af58e919
On teamcity clang --version returns something like
clang version 12.0.0
Target: x86_64-unknown-linux-gnu
currently hipcc does not handle it correctly since [^ ] causes new line and Targe:
matched. \S will make sure only version string matched.
Change-Id: I3659d6daf89b709d2b001e6b8024d69d8b79efc0
APIs tested: hipMemcpy, hipMemcpyAsync, hipMemcpyHtoD, hipMemcpyHtoDAsync
hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyDtoD,
hipMemcpyDtoDAsync
-Scenario-1:: The aim of this test case is to cover all the negative test cases
for 8 hipMemcpy apis
-Scenario-2:: This test launches NUM_THREADS threads. Each thread in turn tests
the working of 8 hipmemcpy apis
-Scenario-3:: This test case verifies the working of Memcpy apis for range of
Memory sizes from smallest one unit transfer to 1GB.
SWDEV-238517 for enhancing hip unit tests
Change-Id: Iace19cc54e865fae8450448d6f37abed88597f19