Commit Graph

620 Commits

Author SHA1 Message Date
Tony Tye 1a033c6ee9 Use properties() method consistently in paldevice.cpp
Change-Id: I8074ecc283dde57bddfabf72a439bf6132ee900e


[ROCm/clr commit: f92b060707]
2021-01-13 08:24:28 +00:00
Tony Tye dc50061c9c Refine sampler handling
- Use std::unique_ptr to levarage RAII for managing the allocation in
  the presence of errors.

Change-Id: I55de515bbf72938e1dd09731c5e51f538cf9d34a


[ROCm/clr commit: 682774a09d]
2021-01-13 08:24:28 +00:00
Tony Tye 3463b51be1 Make roc::Device::getBackendDevice non-virtual
Make roc::Device::getBackendDevice non-virtual and only defined by
roc::Device and not roc::NullDevice. It is only meaningful for an
online device.

Change-Id: Ic333a3a42f650bea524e80dab587a34f1353e593


[ROCm/clr commit: 08f3126f6c]
2021-01-13 08:24:28 +00:00
Tony Tye 9cd02c640e Delete roc::Program::hsaDevice
Delete roc::Program::hsaDevice and access directly from device
associated with program. This allows to be clear if the device is a
NullDevice which has no meaningful HSA agent backend device.

Change-Id: I81f96aff47bf9b8166d0ff6a5efc7c01f0fb6de3


[ROCm/clr commit: 783fe2e01b]
2021-01-13 08:24:28 +00:00
Tony Tye 44f9840f0e Make roc::Device constructor and create() method private
Make roc::Device constructor and create() method private as creating
devices is performed by the factory static methods.

Change-Id: Ifa2edb8ec645b4ce6070c4aef355b9ef88294cf1


[ROCm/clr commit: c1ea70b539]
2021-01-13 08:24:28 +00:00
Tony Tye f8e3f167a0 Check error return from aqlCreateHWInfo
Change-Id: If57c30d0605dc628d93a0d8131836ecde9834261


[ROCm/clr commit: 30729a716f]
2021-01-13 08:24:28 +00:00
Tony Tye 29ca46821b Add stronger checking
- Add assertions to enforce that objects are of the correct kind and
  have been allocated.

- Make destructors check if objects have been allocated before
  deleting.

- Operations that require a non-NullDevice return failure if given a
  NullDevice.

- Use static_cast rather than reinterpret_cast when cohersing from a
  base class to a derived class.

Change-Id: I02ee0ea9d7982fd7ca29d49c9b02cfae111b7127


[ROCm/clr commit: e5431676d4]
2021-01-13 08:24:28 +00:00
Tony Tye 2cb73c8b82 Rename device access functions
Rename functions that access devices to reflect the derived device
they return. This includes the base device::Device and the derived
gpu/pal/roc device classes in both NullDevice and Device forms. Change
to use the least derived versions to clarify what operations will be
available.

Change-Id: I1abb6bfed7efa24852bc8d0d49acaea357d8b5d0


[ROCm/clr commit: 001fd66cac]
2021-01-13 08:24:28 +00:00
Tony Tye 7da6d1778b Move declaration of kMaxAsyncQueues in rocdefs.h
Move declaration of kMaxAsyncQueues in rocdefs.h into the roc
namespace and adjacent to the other definitions.

Change-Id: Ibd319e3cc191945bacb9c06e1b31967717c1c87c


[ROCm/clr commit: f679b05df7]
2021-01-13 08:24:28 +00:00
Tony Tye 303b379d62 [NFC] Reorder some system includes alphebetically
Change-Id: I5245eb8482b447f6ce95e1c0b686d09ca7d20deb


[ROCm/clr commit: 8992f9e18d]
2021-01-13 08:24:28 +00:00
Tony Tye 1215c2d51e Add virtual destructor to device::Settings
Add virtual destructor to device::Settings since derived classes are
allocated, but are deleted using the base class. This ensures the
descructors of the derived clsses will be executed if present.

Change-Id: I1f974b986193c60128009a768ec6b01b9deeacd5


[ROCm/clr commit: 77268b2e60]
2021-01-13 08:24:28 +00:00
Tony Tye efd1f5add1 [NFC] Move device::Info::targetId_ declaration
Move declaration of device::Info::targetId_ to be adjacent to the
other char* name fields.

Change-Id: Iefb249e801765a87b243a2a5e6997e78e817be2b


[ROCm/clr commit: a8d7e59dff]
2021-01-13 08:24:28 +00:00
Tony Tye 3b6c42f78d [NFC] Correct comments and line spacing
- Correct spelling mistakes or working in comments.
- Adding missing line separators.
- Add missing comments for namespace closing brace.

Change-Id: If09cdd38aa088b0f68f750dfdef81351eb8c4935


[ROCm/clr commit: eb16dc5ef3]
2021-01-13 08:24:28 +00:00
German Andryeyev 27e6704673 Explicit page table update on all devices
HMM with xnack enabled should automatically update page tables,
but currently it doesn't perform that. For now, runtime will
force page table update on all devices unconditionally.

Change-Id: Idfa6e1c145e6c114856214dce042b8a8349e5c58


[ROCm/clr commit: 7d3aaa7a39]
2021-01-12 23:16:46 -05:00
Jason Tang ae7ec74669 Fix Windows 32bit build
Change-Id: Iab4a9a3f15c47d2c13d09ad098c52b21e078fd0a


[ROCm/clr commit: 318eecfc87]
2021-01-12 09:23:00 -05:00
Jason Tang 4098e012ed Remove incorrect assert
Change-Id: I7697c688c5c50a38d9d339971d4a03e9b57fcae4


[ROCm/clr commit: 020da898b2]
2021-01-11 20:59:36 -05:00
Tao Sang e9ad9ca200 Remove deprecated __HIP_ROCclr__
Change-Id: I19464fef82d5d24af7d4c46a80318a2922895bb8


[ROCm/clr commit: 4937fd7f0e]
2021-01-11 09:26:01 -05:00
Sameer Sahasrabuddhe 1c90f9fc26 SWDEV-234709: redirect printf to stderr if specified by device code
The first qword in the printf messages is called the control
qword. If the LSB is set, then the output of the printf is now
redirected to stderr instead of stdout.

Change-Id: I391e04e6e8e0f231fda56f3a6e02703bf50e1924


[ROCm/clr commit: e0ac6b4fc5]
2021-01-11 01:36:00 -05:00
German Andryeyev 30cf81fc93 Add HSA signal global tracking logic.
Implement the global class for signals tracking per device queue.
Switch to the new tracking mechanism.

Change-Id: I3c4dda04b34e6d18d6a95510d84102909633b415


[ROCm/clr commit: 8698aeef0d]
2021-01-08 12:57:33 -05:00
Sarbojit Sarkar 6552e3c9b2 SWDEV-264116: Optimize signal pool size
Change-Id: I4b9cef04d18fbbe453db924bcd88837c0e5924de


[ROCm/clr commit: 7648b2a61b]
2021-01-06 02:14:23 -05:00
agodavar b1eb35e730 SWDEV-245381 : Updated guarantee error messages to print based on BUILD_TYPE
Change-Id: Ia21039326b440f6d807a6495a9a05dd52b384c76


[ROCm/clr commit: 69a786e8d1]
2021-01-05 05:49:09 -05:00
German Andryeyev 5bc740fc5e Update comments in the code
Make sure the comments in the code match the actual behavior.
HDP read has internal HDP read cache and doesn't use L2.

Change-Id: I667a4643b0e0d6529008f5e1a0a3269456c55b4e


[ROCm/clr commit: d524514f6a]
2020-12-17 09:43:23 -05:00
Sarbojit Sarkar cd827fad4d SWDEV-262734: Fix for Numa policy bug
Change-Id: I4be62c1fc45a59d09aa043af1c998b9e308da604


[ROCm/clr commit: 673f483879]
2020-12-16 11:22:32 -05:00
Vladislav Sytchenko 6c80b85c95 [PAL] Clamp max image buffer size...
to the maximum size we can possibly create.

Change-Id: Iade51d84fdada4ae1299d9b2410d373a46357c66


[ROCm/clr commit: f45cea29b7]
2020-12-15 12:14:09 -05:00
Payam 53d3c09599 SWDEV-257937 - ROC_BARRIER_SYNC fix for missing SDMA flush
Change-Id: I93e8902bfcb16bac8ea594e16ea397b1ceafbd79


[ROCm/clr commit: f134b90199]
2020-12-15 00:54:33 -05:00
Jason Tang 6778b6e4e2 SWDEV-263539 - More Target ID fix in GSL path
On behalf of Tony Tye. The bootleg passes CQE Baffin/Ellesmere test.

Change-Id: I4c21d21b3aaba360682ef15b8a4dda239f8af276


[ROCm/clr commit: d4316141b7]
2020-12-14 16:48:55 -05:00
German Andryeyev f7cf40fc02 Add L2 flush/invalidate after CPU copy
CPU read updates L2 with the latest values and requires
invalidation after, because SDMA doesn't use L2 and data can become
out of sync.

Change-Id: I98d1c91ca78a103fa5409e638f97485d62d5b11e


[ROCm/clr commit: 18a821acde]
2020-12-11 23:05:49 -05:00
Jason Tang c2637f1589 SWDEV-263539 - Support new Target ID in GSL path
Change-Id: I6827de93b10b312a1b78b69f5cf7d5b3d5bb1e31


[ROCm/clr commit: eef8405041]
2020-12-11 15:56:54 -05:00
Alex Xie 5bb213cc2b SWDEV-256126 - Linux pro Nuke app crash with "Out of memory"
Out of memory while running RIP plugin test

Change-Id: I8d6859a45b871f96ac027f8c7274f716e8524a3c


[ROCm/clr commit: 2505d68eba]
2020-12-10 11:44:54 -05:00
German Andryeyev b301590fb9 Fix a deadlock in ROCr backend
When OCL ROCr backend performs CL_MEM_COPY_HOST_PTR it may attempt
to have access to amd::Memory object it's currently creating,
but it's not ready yet. The logic creates a temporary dummy object
to perform a copy transfer. The new change will make sure runtime
skips allocation of the same device::Memory object second time.

Change-Id: I14c6a00a3941fdcaa6aea299e9f096e4c3f5cadf


[ROCm/clr commit: 1fde842703]
2020-12-09 13:23:17 -05:00
Jason Tang b2fb014e19 SWDEV-263435 - Get code object version the correct way
Change-Id: I18877c116e2f013ec9d04411258c0df8cc0159b3


[ROCm/clr commit: b9520ce4cd]
2020-12-05 15:51:26 -05:00
Saleel Kudchadker 1410f002f3 Use barrier packets for event profiling
Use barrier packets for every profile marker that gets submitted
and use the completion signal to get GPU ts. This gives most accurate
dispatch time. Club cache flushes with profile marker if there is a
pending dispatch that needs cache flush. This optimization saves on
extra barrier and helps wall time

Change-Id: Ib62d6d7aabf4743827b561be6c9c5afa813203da


[ROCm/clr commit: 59c6cb0268]
2020-12-03 13:45:14 -05:00
Jason Tang d47db14a32 SWDEV-260632 - [PAL] Report correct Target ID
Change-Id: Ia39395e2c02e7c95b3df93be1f8030b4fa734583


[ROCm/clr commit: 054f256589]
2020-12-01 18:33:25 -05:00
German Andryeyev 2af039f994 Enable GPU memory in HMM by default
Change-Id: Ifec4733dc7a932163d921ebe1ae9fbd594ea1ef2


[ROCm/clr commit: 4af8b53846]
2020-11-30 12:39:18 -05:00
German Andryeyev 8014e4c7bc Remove obsolete terminate() method
Change-Id: I66b4a74f17977f1af320f402402a2f1b602e9911


[ROCm/clr commit: 08b846ae12]
2020-11-30 11:46:09 -05:00
Jason Tang a0dfb527d6 SWDEV-260632 - [PAL] Use new Target ID format
Change-Id: Icd2d95b9c3f5adbd295fb2272bf453ccb9f09678


[ROCm/clr commit: 0c62d3bf1c]
2020-11-24 17:38:13 -05:00
Alex Xie 2a6c8ecb60 SWDEV-258808 - OCLSeparateCompile subtest of oclcompiler error
[PAL to KFD/ROCr][ROCr_Runtime][Vega10] OCLSeparateCompile subtest of
oclcompiler from ocltst test package is encountering clLinkProgram()
failed (chksum 0x00000001) error

If runtime does not provide a file name as dump file to ELF library,
ELF library use a temp file in current folder.
The current folder can be not writable for several reasons:
1. The application current folder might be system folder, the user
  does not have write permission.
2. The current folder is under a readonly file system. This happens for
embedded customers.

Tested in VEGA10. Issue was fixed.

Change-Id: Ic0e9f040b7c7583914301673cce237ab28b0c0cb


[ROCm/clr commit: 6327dbc4cc]
2020-11-24 15:08:12 -05:00
Aryan Salmanpour 265afae619 don't update maxComputeUnits_ if any exception occurs during conversion of global CU mask string
Change-Id: I7664809fe84d7422b18b1272ffeb642e03a39f1a


[ROCm/clr commit: 72277c29b0]
2020-11-23 09:51:19 -05:00
Jason Tang fdf6d8f1d2 SWDEV-260632 - [PAL] Simplify NullDevice::init()
Change-Id: I9d44162f38806e3742c18da48e382baafeb7060f


[ROCm/clr commit: 3351b9c993]
2020-11-21 10:00:35 -05:00
Aryan Salmanpour e8c7cf569f Add an environment variable for setting a global CU mask
Change-Id: I773b152023c7b8e1e679a42015748f9b23fd946d


[ROCm/clr commit: d03ee6eff6]
2020-11-20 10:05:09 -05:00
Vladislav Sytchenko e6b6308e0b [PAL] Force large buffer mappings to use pinned memory
PAL doesn't perform chunking for system memory allocations, hence we
should fall back to using pinned memory for mapping large buffers.

Change-Id: I1b472616b72d12ed0105fb65532acacdb98ac7b3


[ROCm/clr commit: b4e212a0f9]
2020-11-18 17:12:32 -05:00
Vladislav Sytchenko b33dd902e8 Disable branch-fold optimization temporarily for some Adobe apps
Change-Id: I8b4af4decb6b3ba4b856167ffb0ae8200b21a835


[ROCm/clr commit: ec130a5a28]
2020-11-17 12:51:33 -05:00
Vladislav Sytchenko f8d007fadb [PAL] Navi23 support
Change-Id: I10bb0653746060bd83ca7feda10fdafc07ced845


[ROCm/clr commit: 026baec57b]
2020-11-13 15:08:04 -05:00
Vladislav Sytchenko 77660d1ae9 [PAL] Navi22 support
Change-Id: I9f1741898b4afaa0e787d8053d8f006ee3d17017


[ROCm/clr commit: 5e60e06a50]
2020-11-13 15:00:57 -05:00
Vladislav Sytchenko 8f87022fde [PAL] Report actual HW limits for max image buffer size
Change-Id: I62aa3f1e9709b91ba223af0abf8bf6395fe8ec59


[ROCm/clr commit: 353a018bce]
2020-11-13 14:59:50 -05:00
Jason Tang f4c4323f8e SWDEV-260376 - [PAL] Fix Windows build
Change-Id: I788198b5980a46981de4b2e7aaa6a495e6e98cad


[ROCm/clr commit: 2ee2392f63]
2020-11-13 09:51:43 -05:00
Jason Tang 3322d2c663 SWDEV-260376 - [PAL] Use Pal::AsicRevision to match device
A device's offset in Pal::AsicRevision could be changed from time to time, while the current implementation assume the offset never changes.

Change-Id: Id993512aa0da6e0b2356f594d5e58f76d1f97f16


[ROCm/clr commit: b1d75637bd]
2020-11-12 09:49:48 -05:00
German Andryeyev f4e62df4cf Add SPM support for RGP
RGP protocol supports SPM collection. Enable it in the PAL backend.

Change-Id: I0fa17334addad037ba6689d11fff0993f7899e66


[ROCm/clr commit: 234a94f838]
2020-11-11 13:10:23 -05:00
Konstantin Zhuravlyov 29cce17291 SWDEV-198415 - Implement Target ID Proposal
Changes from Jason Tang, Tony Tye

Change-Id: Idb9b6923f12dfb61a5773c9aa3d3fbeb1327ec47


[ROCm/clr commit: ee6b0d9294]
2020-11-10 13:22:58 -05:00
Alex Xie 4029485d75 SWDEV-258132 [LNX][Navi23] Segmentation fault when run clinfo
Change-Id: Ic8833726214b32f70a35f3922baf2afae87b25af


[ROCm/clr commit: f5ce682ac3]
2020-11-03 14:40:31 -05:00