Wykres commitów
100 Commity
Autor SHA1 Wiadomość Data
German 5ed568998f SWDEV-349794 - Fix time accumulation
If the execution command had a split into multiple HW operations, then runtime has to accumulate time for all operations

Change-Id: Iaba31e96250918d8190bf63adb4c07730fdfefbf


[ROCm/clr commit: 24f5362296]
2022-08-24 09:53:54 -04:00
German Andryeyev 685104cefc SWDEV-329789 - Avoid a race condition with the last command
Runtime can reset the last command only if it didn't change
since the query at the beginning of finish()

Change-Id: I629f2d788e9bbaa17ca4e96b1a753f8131e32463


[ROCm/clr commit: 9e74f1c7f8]
2022-07-07 10:17:07 -04:00
German Andryeyev 110e3e68a0 SWDEV-340703 - Use different status value for the callback event
Change-Id: Ida725df53abfbf348b18e24c19edf011dc9192dd


[ROCm/clr commit: 6844b8c7e0]
2022-06-30 11:03:02 -04:00
German Andryeyev 34ed734a66 SWDEV-344280 - Use coarse grain sysmem for kernel arg on MI200
Change-Id: I9596f0e8b88699538ec271b3a4345e5f75b968e3


[ROCm/clr commit: d8e4a289b3]
2022-06-29 13:04:46 -04:00
German Andryeyev 14f03b4571 SWDEV-341316 - Copy image SRD only if it's valid
Change-Id: I971a21fe99fd07b21cfd3dbe4e7ed33c0ea322f4


[ROCm/clr commit: 73ec7bada6]
2022-06-16 09:18:04 -04:00
German Andryeyev acf2856677 SWDEV-339296 - Delay hidden heap allocation till the usage
Move hidden heap creation to the kernel launch to make sure it's
allocated on the actual first usage.

Change-Id: I1b65a82fc06d9129ed45a69765bf14ea3d945b04


[ROCm/clr commit: 4975f69337]
2022-06-14 12:18:34 -04:00
German Andryeyev 2b3296a4ef SWDEV-259998 - Change the location of RGP init calls
Move StartLateDeviceInit() and FinishDeviceInit() calls in RGP
server to avoid a timeout

Change-Id: Ifd681859c7dc76259d7296aa8cc15305d563c9b2


[ROCm/clr commit: ecea224bcf]
2022-06-13 18:05:44 -04:00
German Andryeyev df01016c97 SWDEV-336024 - Clear device heap to 0 in ROCr path
Change-Id: Id100ca6d6d5bd7fb16ca8c98ff0b12c9df1d69ab


[ROCm/clr commit: 830898753d]
2022-05-20 11:51:08 -04:00
German Andryeyev 0ecf22bb53 SWDEV-336024 - Clear device heap to 0
This reverts commit 8624574866.

Reason for revert: Fix regressions

Change-Id: I7d883e1c3cbd27bb64b581ec800243ad7dfe24fd


[ROCm/clr commit: 07c1b9a998]
2022-05-19 09:10:08 -04:00
German Andryeyev fd78a0d797 SWDEV-334315 - Correct instruction timing API info
Change-Id: I9d291adac076d36776dc7316b411bd093230ca01


[ROCm/clr commit: f0309be0de]
2022-05-17 10:17:07 -04:00
German Andryeyev 43ef8bb204 SWDEV-331660 - Switch PAL interface to 734
Update clientApiId field in PlatformCreateInfo

Change-Id: I445b9712a4c0da9f32e86df8b4a1b8dd7365b11b


[ROCm/clr commit: 893b719181]
2022-05-16 22:58:50 -04:00
German Andryeyev 6c08b9a8a3 SWDEV-336024 - Add a check for nullptr in HeapBuffer()
Change-Id: Ib8a3f2757c8600c4bd5bed417b230a60d4cf3d42


[ROCm/clr commit: 2f04eb90d3]
2022-05-16 09:41:47 -04:00
German Andryeyev 8116b92de6 SWDEV-334315 - Update PAL version and provide API info for RGP
Change-Id: Ied448aada09deabcf26c402a342bdfbd79f22d7b


[ROCm/clr commit: b39dfabb58]
2022-05-12 09:30:19 -04:00
German Andryeyev 8624574866 SWDEV-336024 - Clear device heap to 0
The heap must be cleared once per device, but ROCclr doesn't
create a queue per device in HIP. Hence, the clear operation will
be performed during the first queue creation.

Change-Id: I52ceb06d67d11cde6d019c5ab510059f426a9bfb


[ROCm/clr commit: 04bfd93569]
2022-05-11 11:03:56 -04:00
German Andryeyev 6a225063d4 SWDEV-335142 - Increase max dispatch limit for capture
Change-Id: I929808476a75f4c360cd9368b777e1a0109fdb82


[ROCm/clr commit: 8e5205bb3a]
2022-05-02 15:59:25 -04:00
German Andryeyev d5bc650de9 SWDEV-307184 - Fix a regression from dafc64ea
Disable hostcall buffer in OCL for now. COv5 can add hostcallbuffer
metadata for unknown reason. OCL may fail the buffer allocation
and kernel launch.

Change-Id: I34a6a45bac86c57422b764c0d69760c96920d6c5


[ROCm/clr commit: 934149ff0a]
2022-04-28 11:57:48 -04:00
German Andryeyev eccf328c14 SWDEV-307184 - Make sure runtime passes CO version into comgr
Disable devlib linking when runtime links multiple objects from
the app. Otherwise devlibs will be linked twice and may cause
undefined behavior with COv5.

Change-Id: I3b8640c64ff898893225fe3af5b4b4a32d42bf40


[ROCm/clr commit: c275d9b4b3]
2022-04-25 09:53:59 -04:00
German Andryeyev 4b4137ae63 SWDEV-332512 - Add ROC_SIGNAL_POOL_SIZE
Default value is 32 HSA signals in the pool.

Change-Id: Icb69413d3ff6ef228d9a9e22fd024e72c6d8ebe4


[ROCm/clr commit: 7975a07112]
2022-04-14 17:32:00 -04:00
German Andryeyev 3f93be3aec SWDEV-307184 - Hidden heap keyword was renamed
Change-Id: I0a72b0cc16bd3d637cbaa79a692640bc922f62c4


[ROCm/clr commit: abf088ea89]
2022-04-11 09:26:14 -04:00
German Andryeyev 4715a87d44 SWDEV-307184 - Report 1 for unused dimensions
Remove assert for kernel arg size, because COv5 reports a value
bigger than the actual usage in the most of cases

Change-Id: I8e15bc45a9e21b58a5894f9977511ca84408ce61


[ROCm/clr commit: 2be0b1e612]
2022-04-08 13:43:37 -04:00
German Andryeyev e09245ceae SWDEV-307184 - Move local size calculation
With COv5 local size calculation must occur before
runtime programs kernel arguments

Change-Id: I0726c6529bde69b8fcf5360aa83986cf84e04168


[ROCm/clr commit: caa6110c29]
2022-04-05 11:19:51 -04:00
German Andryeyev b211726623 SWDEV-1 - Fix compilation error with PAL staging
Replace compile assert with an error message during execution

Change-Id: I4c054c65845b14bb980e165855693705c097ff80


[ROCm/clr commit: e5a791217e]
2022-04-05 11:19:51 -04:00
German Andryeyev 2f380870df SWDEV-328670 - Enable arena for ROCr interops
Add ROCR memory detection and enable arena mem object for possible
access in HIP

Change-Id: Icf86ac789176bfee4ea8d36b0970a817d4c6a2f7


[ROCm/clr commit: 28597ec5b5]
2022-03-30 16:46:36 -04:00
German Andryeyev 0d5a8a5b9d SWDEV-311271 - Add a key to control memory pool feature
Change-Id: Ibd929592b802e65d0e1a4fd9689050bce5059e98


[ROCm/clr commit: a02ae1b851]
2022-03-25 19:07:14 -04:00
German Andryeyev b813a78c80 SWDEV-307185 - Move memory allocation under device layer
It can be too early to allocate memory at the begining of
Device::create() under PAL

Change-Id: I4bd76db7be3f6fb246243ea68022d8b0f860471d


[ROCm/clr commit: 3af3fe10de]
2022-03-21 16:17:22 -04:00
German Andryeyev 21c9c02c27 SWDEV-286150 - Switch PAL version to 711
Change-Id: Iaf07946d6327f92ed734223a6b38c433ce368c4a


[ROCm/clr commit: 43ea9a8e31]
2022-03-14 13:00:40 -04:00
German Andryeyev 7d5ed33e8f SWDEV-307185 - Create heap for device memory allocator
Pass the allocated heap with the kernel arguments

Change-Id: Icdec09b7f937845c39e21cbca7071dc3ba791af9


[ROCm/clr commit: 7b114a2b8b]
2022-03-04 00:44:41 -05:00
German Andryeyev ae0ca57698 SWDEV-319375 - Avoid global var size query
Currently COMGR doesn't provide global variable size and runtime
parses ELF binary directly. Avoid parsing for HIP. That can save
5% in hipModuleLoad() time.

Change-Id: I47540d1e957bdb0c2406b6b848222de2920b2504


[ROCm/clr commit: 2664d8cf9e]
2022-02-23 21:33:05 -05:00
German Andryeyev c52280ae72 SWDEV-323702 - Use active queue for transfer
Pass active queue for transfers in the cache coherency layer.
That will allow to use device transfer queue only for
cases when active queue isn't available, because using device
transfer queue from another active queue may cause a deadlock

Change-Id: Ifbe7e0303b77dbf6eeda3939ffbc25a3df7472de


[ROCm/clr commit: 95d55fdfa8]
2022-02-18 09:10:53 -05:00
German Andryeyev 7c8a7ddf5e SWDEV-323364 - Fix a typo
Change-Id: I2031296ab9451342d5930b8b2d3d2e6277946647


[ROCm/clr commit: fbf531398a]
2022-02-17 20:50:29 -05:00
German Andryeyev a7be0eb56a SWDEV-316824 - Fix P2P compute copy path
Use device memory object for the GPU VA address look-up.

Change-Id: I76bf58b29205f7b3ba1bf68e9fcca69421267203


[ROCm/clr commit: 3fd4a67670]
2022-02-15 13:20:13 -05:00
German Andryeyev 3c4f97f66c SWDEV-286150 - Remove GSL backend
Change-Id: Iba9a997ee7d5ff6ac00d5888ff189a4514958fe9


[ROCm/clr commit: 525a1bbf1a]
2022-02-09 17:16:39 -05:00
German Andryeyev 0bfb898038 SWDEV-286150 - Don't report OCL2.2 support
OCL2.2 requires SPIR-V and runtime doesn't support it.
Make sure PAL backend doesn't report any SPIR-V support.

Change-Id: I8d179069674205b54f7d20d149bcb675bee5cdb0


[ROCm/clr commit: 0bf395af39]
2022-02-07 17:34:39 -05:00
German Andryeyev bd96ef9a34 SWDEV-307184 - Add support for the new metadata
Metadata in Codeobject version 5 is the extension of CO3 and CO4.
Add the detection of the new fields and program them in
the setup of the kernel arguments.

Change-Id: I27e58df77320ad00f4f16d35912668db803826af


[ROCm/clr commit: be6a06384e]
2022-02-07 14:05:58 -05:00
German Andryeyev 9c0b3d2d2f SWDEV-318505 - Update HSAIL xnack path
Fix a typo with new line

Change-Id: I7fee63409b491a1f214117b68cfffa0492aa0743


[ROCm/clr commit: b169956c78]
2022-01-27 13:07:11 -05:00
German Andryeyev ea28025939 SWDEV-318505 - Update HSAIL xnack path
Report proper target id for xnack in HSAIL path. Runtime
will use ISA table and report hsailName().
Fix offline compilation path for PAL.

Change-Id: Ic0250bf6b9c193d867aec9800a319da1bf00c3ee


[ROCm/clr commit: a543d4a860]
2022-01-24 09:27:32 -05:00
German Andryeyev 252c0e5032 SWDEV-316665 - Add ATI_BITS_32 define to cmake build
Some logic in ROCclr relies on ATI_BITS_32 define

Change-Id: I2f0ef535e8d7717f9aa8646bdc80c09880bd2bee


[ROCm/clr commit: 5f98028a48]
2022-01-06 13:14:19 -05:00
German Andryeyev b8ab281765 SWDEV-317061 - Fix 32-bit HSAIL complib load
Use __stdcall decl to match the library defines

Change-Id: Id4178443d5a9bb4e5401d80b3b5d15c7bbea0330


[ROCm/clr commit: e0a4e0df0e]
2022-01-04 16:48:18 -05:00
German Andryeyev c759986e28 SWDEV-300515 - Apply CU granularity on the CU count
Report granularity for possible app query

Change-Id: I98857c6f4cc7ae590927ea35ce57d181abe7860b


[ROCm/clr commit: f613831471]
2021-12-10 10:47:28 -05:00
German Andryeyev 5ad02b78c4 SWDEV-305016 - Improve MGPU scaling in Tensorflow
Add a threshold for ROCR/SDMA P2P transfers. ROCR copy path
requires extra barriers in compute for synchronization. That costs
extra performance with tiny transfers.
Reduce active wait time to 10us. Tensorflow uses extra thread
per GPU with constant hipEventQuery() calls. Longer active waits
in ROCr affect CPU performance.

Change-Id: I9020358438615fa2d4617f862f00a562f0a588e7


[ROCm/clr commit: 008133cf41]
2021-12-08 11:59:37 -05:00
German Andryeyev 861b9fb84c SWDEV-294669 - Avoid stall when the new signal was created
Stall in the host thread could occur earlier than the app expects.
Make sure rutnime can grow the signals to the queue size without
any stall. Also adding a new signal to the end of the pool could
break the dependency chain on signal reuse. The new logic will
insert the new signal after current to keep the chain intact.

Change-Id: I9c90b98515907db8b677528263c3e88cd9581a14


[ROCm/clr commit: 102c19adf3]
2021-11-29 10:08:06 -05:00
German Andryeyev b0b0c3049f SWDEV-313126 - Use data() method for the base array address
Reference for the first element can trigger an assert with
_GLIBCXX_ASSERTIONS build

Change-Id: I59c63c052831307edfe5dcc6384798a43e9596dd


[ROCm/clr commit: 6f2e7c3199]
2021-11-26 09:51:57 -05:00
German Andryeyev c116411e00 SWDEV-294669 - Avoid queue drain
Use slot wait logic for direct dispatch

Change-Id: I431ba1418eb4aa066b9881934f4055b3d338ce3a


[ROCm/clr commit: 8e4101b4fd]
2021-11-18 13:06:12 -05:00
German Andryeyev 95c01935b8 SWDEV-305016 - Correct timeout logic
Timeout logic should be applied always even if the wait is active.

Change-Id: I2e5db7ac8a0f9a0355ad7b40e4227d76fb002aa0


[ROCm/clr commit: 9877fc9dbf]
2021-11-16 23:04:34 -05:00
German Andryeyev 0b03dde692 SWDEV-286150 - Add detailed thread trace support in RGP
- Create hash values for binaries
- Add the binaries into RGP trace
- Add corresponding hash value for every dispatch

Change-Id: I2c3ce004d69f37d0d46bc4744e12f24273517f5e


[ROCm/clr commit: 2a298f2ec3]
2021-11-10 14:46:02 -05:00
German Andryeyev 92be4f5781 SWDEV-286150 - Fix a crash when LC is forced
Change-Id: I1127490502012cdbc0391e45b5d9310f04f9482b


[ROCm/clr commit: b0af08ac04]
2021-11-05 12:35:11 -04:00
German Andryeyev 7a9f92d95e SWDEV-305016 - Add a timeout wait into IsHwEventReady()
Just signal check will still submit the marker and then later
runtime will have a timeout, but the barrier packet is still
generated. Hence early timeout will allow to skip the marker.

Change-Id: Ieb7d89becbcff43a4f4c46715354ca65ab4a80b9


[ROCm/clr commit: bbb635bc32]
2021-11-02 11:37:23 -04:00
German Andryeyev 7821cddb3e SWDEV-257789 - Initial change to skip kernel arg copy
The optimization is controlled with ROCR_SKIP_KERNEL_ARG_COPY.
This is initial check-in for experiments. Extra changes are
necessary for full support:
- handle graph capture with the original sysmem alloc
- avoid memobject references, otherwise there is a race condition with
reusage of the arg buffer
- Remove arg setup from hip

Change-Id: Ib0af710f93e79834711fa4049a7c66093711e68b


[ROCm/clr commit: 7e12cf6318]
2021-10-28 20:35:35 -04:00
German Andryeyev 2d2d33dd9c SWDEV-303567 - reset kernel arg buffer to chunk 0
Change-Id: I2974e31af9700705554b0f274ede6f8b9a9d6e7b


[ROCm/clr commit: 30bba18a06]
2021-10-27 22:15:55 -04:00
German Andryeyev 22182e12bd SWDEV-286150 - Switch PAL to 678 interface
Change-Id: I3c130998902654e1dffc954ddf33530ea998ac34


[ROCm/clr commit: 4aea2ad172]
2021-10-27 17:25:02 -04:00
German Andryeyev d8201bc1ce SWDEV-303567 - Add chunks for the pool of kernel arguments
The kernel arg pool will be divided into 8 chunks to avoid long stalls,
when the pool will be reused.

Change-Id: I228e6ca1c09e428c1775f1e5b685220a9a5d71af


[ROCm/clr commit: f78b3a8919]
2021-10-26 16:31:37 -04:00
German Andryeyev 51f7944fcb SWDEV-303567 - Increase the size of AQL queue
ROC_AQL_QUEUE_SIZE will control the size of AQL queue.
The current sefault value is 4096.

Change-Id: Icd2a4ee3ba554c06aa05b08defd922d2c63e43fd


[ROCm/clr commit: 7fe696b6ef]
2021-10-06 08:27:36 -04:00
German Andryeyev 2cb7467eff SWDEV-303560 - Remove coarse grain setup by default
The original logic was left after initial testing when HMM
couldn't handle xnack properly

Change-Id: I0abf01805704171e931dfba8b6d95bfe87d5fab1


[ROCm/clr commit: d17108e8d0]
2021-10-05 17:20:59 -04:00
German Andryeyev 4aed0e4a01 SWDEV-296301 - Avoid deadlocks in the hostcall path
Change the scope of hostcall buffer access lock during destruction.
Make sure wait() returns the signal value after timeout. That
matches ROCr behaviour for HSA signal wait.

Change-Id: I3df34207e0c2e21972ec8052777e5742bda1dca0


[ROCm/clr commit: 9a9d10a10b]
2021-10-04 15:00:44 -04:00
German Andryeyev 42ae43ee24 SWDEV-292408 - Keep tracking of subbuffers for multiple devices
Change-Id: I568b5ea79614ef507cf1f0efb3dca38ab6cc2db7


[ROCm/clr commit: 6b47e50350]
2021-09-22 19:24:39 -04:00
German Andryeyev c99468853f SWDEV-292408 - Don't force high clock for HIP
Change-Id: I501f4e5272124025068b1d3cb637ee8061b06467


[ROCm/clr commit: 51556711dc]
2021-09-20 18:44:11 -04:00
German Andryeyev a7299cd581 SWDEV-292408 - Disable cache coherency tracking for HIP
Cache coherency layer is OCL feature to support multiple devices in
single OCL context.

Change-Id: Ic66df9551fad5b0c4df95ab3e1db1da259919f25


[ROCm/clr commit: 6da9d18140]
2021-09-20 16:13:36 -04:00
German Andryeyev 83d83e6166 SWDEV-302383 - Get active state from device
The queue can be destroyed at the time the app will request
the event status. Hence just get the active state from the device.

Change-Id: I887ecb0cfe414c2119247228b0d1255b8308da1e


[ROCm/clr commit: f116959b54]
2021-09-14 19:01:44 -04:00
German Andryeyev e4ae79ca4a SWDEV-282419 - Use HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE for unset
When unsetting runtime should use HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE
for the agent and not HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE_IN_PLACE

Change-Id: I3814802d1fb3b72c54e7566defafafed6b0d5cee


[ROCm/clr commit: d8a86e4870]
2021-09-13 15:05:20 -04:00
German Andryeyev 28c4d9c0df SWDEV-294669 - Keep one more slot for HW processing
The original logic left only one slot for HW processing in the queue.
For some reason there is a race condition on CPU overwrite of the slot
before the current active. The workaround is to avoid the previous to
the current active slot for possible unfinished HW processing.

Change-Id: I565495a8feeaedffc9fc8a505edbee5ff5816975


[ROCm/clr commit: 65ddfcc6a8]
2021-09-13 13:56:05 -04:00
German Andryeyev ee69220fb9 SWDEV-295555 - Add SVM mode query
The new query MemRangeAttribute::CoherencyMode can return current
coherency mode for the provided memory region. Coherency mode can
be one of the following types: FineGrain, CoarseGrain and
Indeterminate

Change-Id: Ib66feeeb14f57a8b1cc731c65bb3d0276d297ff7


[ROCm/clr commit: 992830bab7]
2021-08-22 23:56:08 -07:00
German Andryeyev b26c568a90 SWDEV-296329 - Add lock protection for Timestamp update
There is a possible race condition when signal reuse can have
access to a destroyed Timestamp object, because the callback
was running asynchronously. Use reference counter and lock
to allow asynchronous timestamp update

Change-Id: I6224f7c62cb0a03a7466fcc512e5e5afb06736fa


[ROCm/clr commit: ec89348291]
2021-08-22 23:56:08 -07:00
German Andryeyev f19e3f0a13 SWDEV-290384 - Enable active wait on CPU if HIP requested
Change-Id: Idea5adf7a4705cb999da6785e6229fe3200dce17


[ROCm/clr commit: 2babcfbdbb]
2021-08-22 23:56:08 -07:00
German Andryeyev 7db8765792 SWDEV-290384 - Disable HSA callback for any host wait
Change-Id: Ie876deb62859f5551f4ed69eb8187ac3fa35f42a


[ROCm/clr commit: c144383971]
2021-08-22 23:56:08 -07:00
German Andryeyev 3393396aaa SWDEV-292018 - Switch to internal signals for markers
Add ref counting to ProfilingSignal class to track the last release.
If a signal was used in the marker, then don't reuse it,
but create a new one for internal usage.
Don't rely on HSA callback for the command status update if there
are no pending dispatches.

Change-Id: I19f14ed9d80acfe79993b343b2187635f8428a20


[ROCm/clr commit: ff15c0893e]
2021-08-22 23:56:07 -07:00
German Andryeyev 87ec9d77e6 SWDEV-290495 - Add HSA_AMD_AGENT_INFO_SVM_DIRECT_HOST_ACCESS query
Change-Id: Ib18a53a9016eb5c5ffd51bf6835cba7299ec8421


[ROCm/clr commit: e4dae85ade]
2021-08-22 23:56:07 -07:00
German Andryeyev 0104c5817c SWDEV-292820 - Add a new notify lock
HSA signal calback may occur during the actual marker submit. That
may cause a deadlock, because shared lock_ object. Create the new
notify_lock_ field to protect the notification.

Change-Id: I9752af84e59895530620fac3932c6fc276de8658


[ROCm/clr commit: f34c1b9ff8]
2021-08-22 23:56:07 -07:00
German Andryeyev e58a6f3502 SWDEV-289378 - Avoid CPU TS overwrite if GPU TS is available
Change-Id: I444ec284669b6a6fff31182e213b47c562c90192


[ROCm/clr commit: f4032401cf]
2021-08-22 23:56:07 -07:00
German Andryeyev b5c9af9b52 SWDEV-289378 - Avoid CPU TS overwrite if GPU TS is available
Change-Id: I2fc1a43c048b4fa1e42f27c4cf5c72fc7ae84e9c


[ROCm/clr commit: 4fd506cfe1]
2021-08-22 23:56:07 -07:00
German Andryeyev a738f7957b SWDEV-292018 - Avoid marker if queue is empty
Change-Id: I40a42d67d2c911d2c9a0bf425f36bc795f9539c0


[ROCm/clr commit: 6ab8dcc682]
2021-08-22 23:56:07 -07:00
German Andryeyev 9f03f68a8a SWDEV-290160 - Switch to global HSA signals
Runtime can't assign internal HSA signals for HIP events, because
HIP application can destroy the HIP stream or signal reuse may
occur internally. Switch to global HSA signals for HIP events.

Change-Id: Ieaea2d6b039e492b2e7c5112782a8f4e601e50a1


[ROCm/clr commit: ce8dad2ecc]
2021-08-22 23:56:07 -07:00
German Andryeyev 863a43abfc SWDEV-290160 - Don't send notification for batch markers
Batch marker already has a barrier with HSA signal callback

Change-Id: I69fc63d72320c2e9cc2d2e59ebd3f07c0bd0e3b5


[ROCm/clr commit: c49f1069ab]
2021-08-22 23:56:07 -07:00
German Andryeyev 9da54443dd SWDEV-290371 - Add lock protection for signal
Add lock protection for signal processing
If signal is reused, then disable reference to it from HIP
Increase the pool signal size to 32

Change-Id: I7d529b35910f83ce577c9eca6d3386759611ccc0


[ROCm/clr commit: a1629cad26]
2021-08-22 23:56:07 -07:00
German Andryeyev a9abd850ea SWDEV-284671 - Add HW event wait to improve hipDeviceSynchronize
If AMD event contains a reference to a HW event, then runtime
could check/wait for HW event. CPU status update will occur later
after HSA signal callback, but it's not important for the result.

Change-Id: I591391a953bbdba6a25ac07e2cd98aeb17cd4596


[ROCm/clr commit: 85c70a7495]
2021-08-22 23:56:07 -07:00
German Andryeyev 88b7c2b990 SWDEV-240804 - Update ReadMostly attribute
Switch HSA_AMD_SVM_ATTRIB_READ_ONLY to
HSA_AMD_SVM_ATTRIB_READ_MOSTLY to match Cuda. The new attribute
was just exposed in ROCr/KFD.

Change-Id: I2ee522d33c347ba52a4e272d2cd7f67960490cf7


[ROCm/clr commit: 89b69638d1]
2021-08-22 23:56:07 -07:00
German Andryeyev c4ee688d6e SWDEV-240804 - Add coarse grain memory support
Add an extension to memory advise to disable cache coherency for
better performance

Change-Id: I283703d81d9c36ddfa2c8fffa15eef60e2195056


[ROCm/clr commit: a9a1e21445]
2021-08-22 23:56:07 -07:00
German Andryeyev a2248eca4c SWDEV-287137 - Add blocking signal logic
With HIP API callback runtime has to stall the queue until the
callback is done. Rocclr will introduce SW blocking HSA signal,
which will be released after the callback is done.

Change-Id: I6411f3efab31b468e3b87ebb5c8d155e116b613d


[ROCm/clr commit: d93df7037c]
2021-08-22 23:56:07 -07:00
German Andryeyev 1184f7af0b SWDEV-287137 - Fix regression with dependent signals
- Make sure barrier with dependent signals issues before queue
index reservation
- Don't issue extra barrier if it's already a barrier command
with dependent signals

Change-Id: I179a8b7adac79eed698f4a4d9eca2606d8e913aa


[ROCm/clr commit: 148a5cac39]
2021-05-26 12:36:56 -04:00
German Andryeyev 3e36acd579 SWDEV-278894 - Use GPU waits for HIP events
Save HW events in amd::Event.
Use HW events for synchronization

Change-Id: I98cf9c2d0ec3c7fcaf254b749ac6c568d7270ae0


[ROCm/clr commit: fa2e154a8b]
2021-05-25 13:41:15 -04:00
German Andryeyev 7dadaa1ccb SWDEV-285318 - Wait for the queue before destruction
With direct dispatch enabled make sure the queue is done before
destruction.

Change-Id: Ib80af3efb97dfb93e2dce60a11db34fb5c45f5cd


[ROCm/clr commit: a81756bba3]
2021-05-20 10:28:24 -04:00
German Andryeyev 9d920e88f3 SWDEV-240804 - Switch SVM attribute for the first alloc
Use HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE flag for the initial
allocation instead of HSA_AMD_SVM_ATTRIB_AGENT_ACCESSIBLE_IN_PLACE.

Change-Id: Ia52fe205563df1ea916dc2dc81e749e11c16f83d


[ROCm/clr commit: 9b3072ae12]
2021-05-18 09:32:29 -04:00
German Andryeyev 2b409b7e57 SWDEV-240804 - Remove AMD_HMM_SUPPORT define
Use dynamic logic for HMM based on it's availability

Change-Id: I63751d94571d5af6eb57bef2cb0e071120bfa103


[ROCm/clr commit: 3f7a6b01e3]
2021-05-14 17:41:06 -04:00
German Andryeyev c5aff0dea0 SWDEV-286150 - Fix compilation with PAL_GPUOPEN_OCL disabled
Change-Id: If6d77ecce7395023db4aa9cb1ff494bc64cb1f17


[ROCm/clr commit: 1b82ff6678]
2021-05-12 22:48:45 -04:00
German Andryeyev 4352d68310 SWDEV-86035 - Update PAL interface to 665
Change-Id: Ic38417ac5ff426119d721790a467552633110973


[ROCm/clr commit: 6c5fe7feb5]
2021-04-27 18:10:32 -04:00
German Andryeyev 118a1a9295 SWDEV-86035 - Update the new DOPP flag in PAL interface
Change-Id: Ia3de452bf77220ae0403b3427e13c6ad26009128


[ROCm/clr commit: cdccb6ebc9]
2021-04-27 17:51:23 -04:00
German Andryeyev 5e70450a24 SWDEV-240804 - Enable HMM build by default
Change-Id: Ia6175dff8eda8c18b7a7bb4ca87a90c1f3e4e6fb


[ROCm/clr commit: ea3dba0832]
2021-04-26 17:36:53 -04:00
German Andryeyev ebbf5675f9 SWDEV-86035 - Make sure the legacy lib is loaded with PAL backend
Change-Id: I5b48778c2e48549afb3fd69b0a316989c01faaef


[ROCm/clr commit: 14a6ec2c59]
2021-04-22 13:57:26 -04:00
German Andryeyev 8cea0215fb SWDEV-282397 - Alloc scratch memory on the current queue
Device enqueue has an option to execute scheduler on the current
queue and it's enabled by default. Make sure scratch is allocated
on the current queue for that case. Add max vgpr tracking per
program to adjust scratch size accordingly.

Change-Id: I2a6d796913a4551a1e7f343a2465d589eec60d8a


[ROCm/clr commit: e553b2763a]
2021-04-20 12:59:44 -04:00
German Andryeyev bb636d4fca SWDEV-278896 - Increase thresholds to match MT behavior
MT doesn't use GPU waits, but CPU for sync between engines.
Change the threshold values for CPU waits for direct dispatch.
That will bring behavior closer to MT.

Change-Id: Ia41c3cb812614962aff2746b6cf858f1bf77dda2


[ROCm/clr commit: ca2ea70a6c]
2021-04-16 17:47:57 -04:00
German Andryeyev c8c1ed4c13 SWDEV-86035 - use the new field for SE mask
Change-Id: I51ed37f1194264876a3099189f35216d01988771


[ROCm/clr commit: 57d668ab8f]
2021-04-16 11:10:34 -04:00
German Andryeyev 77c260410a SWDEV-279288 - Move the batch condition
The check has to be performed inside the signal loop, because
active signals need to be processed to avoid a stale timestamp
class.

Change-Id: I26af8287aae18eb19c096d9358cd0b86cfd1c561


[ROCm/clr commit: 2d41031aec]
2021-04-06 10:22:31 -04:00
German Andryeyev 472a43432d SWDEV-279288 - Avoid profiling info for the sync barrier
- With direct disaptch profiling state is enabled to trigger the
callback on HSA signal. However ROCr has very low peformance on
the first call to get the profiling info. That impacts some tiny
performance tests.

Change-Id: Idacd1b10a473fcfb5feef3074b7191d35743f769


[ROCm/clr commit: a71f7f931e]
2021-04-05 12:54:23 -04:00
German Andryeyev 59ee442a9c SWDEV-278346 - Replace assert with LogWarning()
ROCr returns some unexpected values and for now just return
invalid device back to the app

Change-Id: Ia6fb709ed2dc77d77bd5d64de80b41b3720bed76


[ROCm/clr commit: 8c513407af]
2021-03-25 10:19:33 -04:00
German Andryeyev e51ecdaff3 SWDEV-274145 - process ACCESS_QUERY for all devices
HIP requires to return AccessedBy query for all device, but ROCr
can process one per query. Hence send the queries for all
available devices and then accumulate the results in runtime.

Change-Id: I082f9adb8e31c775a8ad1bf7a5af37440ef4bd16


[ROCm/clr commit: e9c484d1ce]
2021-03-08 14:19:13 -05:00
German Andryeyev 7c1443eb05 SWDEV-272449 - Create RGP manager before CommitSettingsAndInit()
Enabling DebugVMID requires a certain sequence in
PAL initialization. StartLateDeviceInit() must be called before
CommitSettingsAndInit().

Change-Id: I7385a8cc89e7a8ad97a6b56ad6acbd2cf2f29728


[ROCm/clr commit: dee99ca807]
2021-03-05 11:36:12 -05:00
German Andryeyev 3a4d69def2 SWDEV-272496 - Detect callbacks and force AQL barrier
HIP tests require HIP callbacks to be processed in another thread.
This change will use a thread from HSA signal callbacks to make
sure a HIP callback was done asynchronously.
Also process the callback before changing the status of command

Change-Id: Icef85d0e0f808663882cf6881ff1be3e5eca29ac


[ROCm/clr commit: 7f32d0b425]
2021-03-05 11:33:51 -05:00
German Andryeyev e8b1e484f5 SWDEV-274199 - Enable SVM tracking
ROCr/KFD doesn't validate memory pointers. Enable validation inside
ROCclr, using SVM tracking mechanism.

Change-Id: I581e32ff37187f9ed8d9a302e8fd9f6ca935bdd7


[ROCm/clr commit: fbde61de7f]
2021-03-03 13:18:56 -05:00
German Andryeyev f6cc68deac SWDEV-272496 - Fix multiple timing issues
- Don't notify if the batch is empty, because that means
the current command was processed already.
- Disable pinning optimization to avoid a race condition on stall.
- TS marker submition requires extra AQL barrier
to track the status.

Change-Id: I17eff4ad12ac66cfe1bb44048bebb1891805279d


[ROCm/clr commit: 24299e25bd]
2021-03-01 12:46:57 -05:00
German Andryeyev 52ea1c1e91 SWDEV-272496 - Fix a regression in PAL
Skip notification for markers with direct dispatch only,
since they are blocking always

Change-Id: I6bb17650f73371dae6e29c59fd6bb2012cc062fd


[ROCm/clr commit: a9b0e20d26]
2021-02-25 11:11:42 -05:00
German Andryeyev 5a6c7a9ae4 SWDEV-272496 - Disable notification for the previous notify
Direct disaptch doesn't insert extra barriers for Markers if
AQL barrier was the last issued command already.

Change-Id: I00fbc658547d83dd3ee64ec391ed50e5f8a08e30


[ROCm/clr commit: 0587fb7450]
2021-02-23 17:04:59 -05:00