Commit Graph

197 Commits

Author SHA1 Message Date
German f5f0a6c618 SWDEV-352487 - Don't add notifications as the last command
Change-Id: Ifed34485839ef2c9491e8e8f6bb3569932160b1c


[ROCm/clr commit: e223b0f678]
2022-10-24 09:39:03 -04:00
Laurent Morichetti 860e33dbed SWDEV-362046 - Report HIP_OPS activities using the ROCr driver_node_id instead of the device's index
The ROCclr assigns zero-based IDs to GPUs in the order they are
discovered. That zero-based ID is what is used to identify the GPU
on which the HIP_OPS activity took place.

When multiple ranks are used, each rank's first logical device always
has GPU ID 0, regardless of which physical device is selected with
CUDA_VISIBLE_DEVICES. Because of this, when merging trace files from
multiple ranks, GPU IDs from different processes may overlap.

The long term solution is to use the KFD's gpu_id which is stable
across APIs and processes. Unfortunately the gpu_id is not yet exposed
by the ROCr, so for now use the driver's node id.

Change-Id: Ib78854527d600d175bb76e2df0747c33f898c615


[ROCm/clr commit: 9a82118c85]
2022-10-20 12:31:30 -04:00
Sourabh Betigeri f25d8dae77 SWDEV-357246 - Adds a missing return statement
Change-Id: I2216f71f4d4fb6dd3766023b0c821cb3d35d7849


[ROCm/clr commit: 84fbb30b7c]
2022-10-05 16:29:32 -04:00
Laurent Morichetti 7bcdb29caa SWDEV-351980 - Add FillBuffer byte count to the record
Change-Id: I90c791f5810b8a3f6b1d6a9e81c165b1a7515c92


[ROCm/clr commit: e00965df50]
2022-09-30 21:20:14 -07:00
Saleel Kudchadker 0dd9add8e1 SWDEV-352001 - Store last scopes for dispatch
- Store last fence scopes and use the last value to determine if we need a cache flush again. This helps cases where hipExtLaunchKernel API is
used.
- Purge code for ROC_EVENT_NO_FLUSH

Change-Id: I531cf9c9c60d5e2b3a9e265d0f52f79ed2fa8a8c


[ROCm/clr commit: 9b5cbd37a2]
2022-09-22 11:34:10 -04:00
Laurent Morichetti 0cd3ec5056 SWDEV-351980 - Consolidate registration tables in the roctracer library
Remove the activity_prof::CallbacksTable. The table was redundant with
the information already stored in the roctracer library. Instead use a
single callback into the roctracer library to query whether the activity
is enabled, and to report it.

Change-Id: I2e05b0881bb4a1953c14361d00ea310d02eb6e0c


[ROCm/clr commit: 52eb28930a]
2022-09-21 05:54:09 -04:00
Laurent Morichetti 353f9bc86c SWDEV-351980 - Enable profiling for commands reporting activities
Profiling should be enabled for any command reporting activities as the
activity record captures the profilingInfo's start and end timestamps.

Since IS_PROFILER_ON is only used to determine whether API tracing is
enabled, there is no need to expose it globally, it should be a property
of the activity_prof::CallbacksTable.

Change-Id: I44a0d19ed2862606cfbc9a98c1a07a336ab7e26c


[ROCm/clr commit: e713b5c7d0]
2022-09-21 05:53:59 -04:00
Laurent Morichetti cbcc94b9e3 SWDEV-351980 - Move activity_ to the ProfilingInfo
The activity_ is only instantiated if profiling is enabled.

Remove the HIP private global record ID. Instead, use the correlation ID
stored in the hip_api_data_t by the profiler while the last HIP function
is in scope.

For NDRange and Copy commands, store the kernel name and byte size
(respectively) in the record.

General cleanups to improve the code's readability.

Change-Id: I01907484b0d9611eb9440c3a7c4865479dc42289


[ROCm/clr commit: 4fbae91468]
2022-09-21 05:53:47 -04:00
Ajay c2a7fe7bd6 SWDEV-347670 - GPU StreamWait and StreamWrite support in Windows PAL backend
Change-Id: Ic4881305b6332e217f3d3127dce7e9d9d0a7df11


[ROCm/clr commit: 373a7d1195]
2022-09-15 13:57:40 -04:00
Joseph Greathouse b995ea06e8 SWDEV-330307 - Avoid releasing command before last use
The fix for SWDEV-329789 moved down the last use of the a
command object pointer in order to prevent a race condition.
However, the previous patch did not move down the release of
that command. By releasing the command early, another thread
could get a command with the same pointer. That second thread
could later submit work to the queue using that new command.
The first thread could then perform a comparison against the
queue's last command using its own now-stale pointer. This
could eventually allow the second thread to skip synchornizing
on the queue. This would result in host synchronizations
completing before their device work was actually complete.

Change-Id: I292b7b369743251ceafe453a4c5cae14a6d01046


[ROCm/clr commit: 6b956f7627]
2022-08-31 16:07:49 -04:00
Jason Tang fb753e489d SWDEV-333471 - Add GPU_FORCE_QUEUE_PROFILING
To support both hip and ocl. HIP_FORCE_QUEUE_PROFILING will be replaced with this later on.

Change-Id: I6d3514b1568ff049584ed9fd74bbdb3e4f4bf0c3


[ROCm/clr commit: d92b3a2d90]
2022-08-19 10:51:41 -04:00
Anusha Godavarthy Surya b66ec1a031 SWDEV-345683 - Fix HIP out of memory
If for every eventRecord handler is not submitted,
memory is not getting released during hipFree and leads to OOM.

Change-Id: I19b61a0c523502e9e1a3564ce8b791f3e2cea02c


[ROCm/clr commit: 7b1c6d06d5]
2022-07-28 07:36:38 -04:00
Saleel Kudchadker 7fd80925cd SWDEV-335626 - Use ROCr copy for IPC
Detect IPC buffer and use ROCr copy api instead of blit

Change-Id: Ie6bdd6fc45dbd7457611011d81570b53d5fd5276


[ROCm/clr commit: faaa41aab8]
2022-07-08 13:32:19 -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
Ajay 6596275caf SWDEV-337331 - command queue logs for debugging option
Change-Id: I198aecc5fd12369d87d4acc9910acc9435c1967a


[ROCm/clr commit: 236178d0d4]
2022-06-22 19:41:38 +00:00
Jaydeep e146b7812e SWDEV-332607 - If pitch returned from hipMallocPitch is equal to pitch passed to hipMemset2D then height passed to hipMemset2D must be less than or equal to height passed to hipMallocPitch.
Change-Id: I8d9b0938fb592170008aaec9cedd519bf40c6201


[ROCm/clr commit: ea0590d1fe]
2022-06-17 10:35:22 -04:00
Sarbojit Sarkar 8f863abe02 SWDEV-325379 - Fix for remote copy crash
Change-Id: I22152c0b3538cf7cfc80f82505bc255c01d98f7b


[ROCm/clr commit: 356e22f910]
2022-06-16 23:59:11 -04:00
Saleel Kudchadker b3ad41f6e4 SWDEV-335780 - Indicate if handler is queued
Maintain status of handler callback. For event records we no longer
submit callbacks to reduce the load on the async handler thread. However
without a callback we leak command memory/decrement refcounts. Indicate
status of the handler which we can use to queue a callback when
finish is called.

Change-Id: I89fd02f3d047a0e8162664ee17581a14795f1928


[ROCm/clr commit: 5df34a2f7a]
2022-06-14 20:55:06 -04:00
neqochan 996e8ea2b3 SWDEV-1 - Fix illegal atomic initialization
See https://stackoverflow.com/a/21710850 for an extensive discussion.

This is a cherry-pick from a github pull request:
https://github.com/ROCm-Developer-Tools/ROCclr/pull/29

Change-Id: I87a58548d2995ab51a7cd6e684b5442e5b300923


[ROCm/clr commit: ebfa343827]
2022-05-31 09:51:44 -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 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
Rakesh Roy 52f85f8475 SWDEV-333598 - Add flags field in amd::Memory UserData
Change-Id: Ie4d59fa34486679fde1027dd113573bda3e7c65c


[ROCm/clr commit: ac2c3b5cad]
2022-05-05 12:24:53 -04:00
Saleel Kudchadker d9c2aee526 SWDEV-334152 - Set release as systemscope
Set release scope as system for dispatch AQL when events are passed to
hip*LaunchKernelGGL*

Change-Id: I93b91591e0ab023f1ecc5247f7905eca26147358


[ROCm/clr commit: 02566677cf]
2022-04-29 13:19:29 -04:00
Sarbojit Sarkar 3a0462c981 SWDEV-330649 - Fix for QCD app crash
Change-Id: If85eb06083d2f7dbe69cde6fbd5ac54979d25693


[ROCm/clr commit: 2f973fb38b]
2022-04-29 05:37:33 -04:00
Saleel Kudchadker 29752a2bbc SWDEV-334150 - Force callback to cycle commands
Enqueue a handler callback for hipEventRecords(aka marker_ts_) for every
64 submits, This recycles the memory if we dont end up calling
synchronize for the longest time.

Change-Id: I3d39fe76d52a5d81387927edd85b5663b563682c


[ROCm/clr commit: fa76f03654]
2022-04-28 12:30:23 -04:00
Christophe Paquot 5f42bfd145 SWDEV-322620 - Virtual Memory Management
Implement map/unmap for PAL backend
Create commands since PAL uses the IQueue to map/unmap

Change-Id: I97e26a7d28ae5e10774c9ca65307153100945621


[ROCm/clr commit: 67657d6099]
2022-04-22 18:09:26 -04:00
Saleel Kudchadker f464cdacf4 SWDEV-333237 - Release command before queing a marker
Change-Id: I5343c4b7ade2dc68efa7454a919a6657726c45d3


[ROCm/clr commit: ddfd919a62]
2022-04-22 12:58:58 -04:00
Alex (Bin) Xie ad6b22597e SWDEV-329646 - MicroStation app crash upon closing
Change-Id: Ie3422788c80b233c836e319c355214ca076e5d4f


[ROCm/clr commit: 3d514c85b9]
2022-04-20 14:34:44 -04:00
Saleel Kudchadker cad3dfe4ec SWDEV-301667 - Separate scope from marker_ts_
Change-Id: I19f4d394e898bfb8c9d9a2c2edf9d5bf5def3b08


[ROCm/clr commit: b6cbfaf499]
2022-04-16 19:26:31 -04:00
Christophe Paquot 1024cb58a7 SWDEV-322620 - Virtual Memory Management
Adding virtual memory management APIs to rocclr.
The HIP layer will handle virtual allocs on devices.

Change-Id: Ia978f105c2c3fed3959c77580ba228e845105754


[ROCm/clr commit: b5f555f9ec]
2022-04-15 00:10:02 -04:00
Saleel Kudchadker 3d0100c5ab SWDEV-301667 - Add cache state for a device
- Add a global cache state for a device to indicate scopes of submitted
AQL packets
- Remove scopes for TS marker if hipEventReleaseToDevice is passed. Set
env ROC_EVENT_NO_FLUSH=1 to use NOP AQL for event records.
It would flush caches by default with system scope release.
- Calling finish() should ensure if caches are flushed, if not queue a
marker

Change-Id: Ibbbdbb1cd7ac61cb35649169212142545be159e0


[ROCm/clr commit: 8eeaa998c0]
2022-04-12 12:27:31 -04:00
haoyuan2 be69f68ec7 SWDEV-328274 - Move DLLMain from VDI layer to HIP/OCL layers
Change-Id: Idc84eb0db92d21a5ced8769fa1eae064b86c31b0


[ROCm/clr commit: 1fbc01a812]
2022-04-11 16:55:59 -04:00
Maxime Chambonnet 38928e85c1 SWDEV-1 - ROC CLR typos
This is cherry-picked from this github issue:
https://github.com/ROCm-Developer-Tools/ROCclr/issues/28

Change-Id: I236f4f25a2dabe05883159af0fab0bad06ab0fd0


[ROCm/clr commit: d45794e985]
2022-04-11 14:24:39 -04:00
Christophe Paquot 0f954adf29 SWDEV-322620 - Virtual Memory Management Part 1
Adding opaque data handle to memory. This is used to look back the HIP object associated with it.

Change-Id: I1bbb14a915bed79c6c3593a29a627778c7aaf13a


[ROCm/clr commit: 867346520f]
2022-03-31 21:12:26 -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
Saleel Kudchadker 4dbec887a2 SWDEV-301667 - Selectively queue handler
- Queue handler for hipEventRecord(aka marker_ts_) only if there is a
callback associated with it.

Change-Id: I8a9877ae0e342556053abbaacc9510744a8e772a


[ROCm/clr commit: 3c3c0ca4c5]
2022-03-24 19:46:28 -04:00
haoyuan2 133f476d2e SWDEV-298331 - Fix FreeLibrary throw exception issue on Windows
release HIP resource at DLL_PROCESS_DETACH point

Change-Id: I884ab028eeec1aaa2f655746f7eeae130fd009e4


[ROCm/clr commit: 58e1867079]
2022-03-01 12:06: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
Satyanvesh Dittakavi 85c2cac111 SWDEV-306939 - Fix vdi errors/warnings by CppCheck
Change-Id: I56d910f8363787f1050d5d7e8064ed553c5827fd


[ROCm/clr commit: e20dd61932]
2022-01-12 00:22:16 -05:00
haoyuan2 248a738674 SWDEV-290298 - add a flag to indicate the primary context active status
Change-Id: Ia31790706d3f855bc1eedf5ef874e471


[ROCm/clr commit: 439af94dd9]
2021-12-09 23:28:54 -05:00
Sarbojit Sarkar 4630f3ade0 SWDEV-314254 - Fix for hipMemcpy3D test crash
Change-Id: Iac70bfe0d351cfb5b56fefc9a6487d3f26f2b4ef


[ROCm/clr commit: aedbad0109]
2021-12-09 11:46:52 -05:00
anusha GodavarthySurya 02e46ec231 SWDEV-284895 - Adding kind metadata and launch init/fini marked kernels
Change-Id: If2b21c4b98567632c426943e0b69aca8d6f1ec2a


[ROCm/clr commit: 102aa9d6d9]
2021-12-01 08:17:44 -08:00
Sarbojit Sarkar c8a6920b91 SWDEV-310181 - Fix for AtoH Memcpy tests failure
Change-Id: Ibf8c8c01257f0516088d50d5c9f82040ed8fa067


[ROCm/clr commit: 02dc6f9f9a]
2021-11-29 22:55:23 -05:00
Satyanvesh Dittakavi 1caf1e4936 SWDEV-292714 - Add unique id for each allocation to support HIP_POINTER_ATTRIBUTE_BUFFER_ID
Change-Id: Ibb3fcb2d0bbbef03525fc884d5b3e9b5f6c11423


[ROCm/clr commit: c56317b2e0]
2021-11-24 06:10:50 -05:00
Sarbojit Sarkar 04745adf7a SWDEV-310181 - Fix for mGPU dtest failure
Change-Id: Id0898bd45e23f2d637bef25a3e69f26d9dc40785


[ROCm/clr commit: 2afeacc858]
2021-11-22 01:01:47 -05:00
anusha GodavarthySurya 2c1173ea32 SWDEV-240806 - hipGraph performance create new graph commands for every launch
Change-Id: Ifd4a373d6a76118ae0946238b29accfacbe32937


[ROCm/clr commit: ef1ec6ffde]
2021-11-19 00:09:47 -05: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
Jason Tang c9fa41e3c6 SWDEV-292525 - Fix -Werror=parentheses build failure
Change-Id: I2650413914914392df68a9fbf669af216a132640


[ROCm/clr commit: f61dc18681]
2021-10-22 09:43:15 -04:00
Alex Xie e5816ea048 SWDEV-306854 - Observed conformance subtest SVM failure
Revert "SWDEV-292408 - Keep tracking of subbuffers for multiple devices"

Change-Id: I604e9b49368fa1f143302fddda674c18d7351108


[ROCm/clr commit: ea48fc029b]
2021-10-15 09:28:06 -04:00
pghafari 6cb3ef5d42 SWDEV-245531 - GLInterop: updating glEnv logic
Change-Id: I6103243c477547a6a2b714bbf836ce36abe84f8c


[ROCm/clr commit: 5b6b2e6d2c]
2021-10-13 09:26:52 -04:00