Commit Graph

3942 Commits

Author SHA1 Message Date
German Andryeyev d43cf72481 SWDEV-271888 - Remove an explanation link
Change-Id: I157adac7a248d50ee8db677c19be20c00fcd5ecc


[ROCm/clr commit: 47f8d55313]
2021-02-05 17:28:28 -05:00
Chauncey Hui d94bfc6d91 SWDEV-2 - Change OpenCL version number from 3251 to 3252
[ROCm/clr commit: c82cda6a7c]
2021-02-04 03:00:06 -05:00
Julia Jiang b9256275ad SWDEV-271125 - update ROCclr readme
Change-Id: Icc3df1eca16c685d5ab1c74bebf37bbf169841c0


[ROCm/clr commit: 699b61b5c1]
2021-02-02 17:20:46 -05:00
Chauncey Hui c94aabfa88 SWDEV-2 - Change OpenCL version number from 3250 to 3251
[ROCm/clr commit: 20ab999164]
2021-02-02 03:00:06 -05:00
Jason Tang 8dffe9c8e6 SWDEV-269880 - Fix luxmark 3.1 segfaults
To workaround a bug in std::regex() implementation.

Change-Id: I4ea2b40e0b74ee1ee79d31283937e43d361d37c2


[ROCm/clr commit: 4791447370]
2021-02-01 16:12:36 -05:00
Alex Xie c490930624 SWDEV-268914 - Linux, AMF, tests fail to scale images down
In pitch workaround, we need to copy the image to copy buffer
when application wants to read image to buffer. After this
patch, we unconditionally copy the image data to the copy buffer.

Change-Id: I71b0d19459542dfbb3ca51a2c8a3a81367fa2fb5


[ROCm/clr commit: 5330679473]
2021-02-01 15:22:15 -05:00
Joseph Greathouse 62fee66ff2 SWDEV-270773 - Fix workgroup calculation logic for GWS initialization
The existing workgroup calculation logic for GWS initialization is
incorrect. It tries to add together workgroups across dimensions,
leading to major under-count in 2D and 3D kernels. An (x,y,z) kernel
uses x * y * z blocks, not x + y + z.

In addition, the previous logic was incorrect for the case of launching
a single-threaded kernel. It calculated 0 workgroups, leading to
initializing GWS to -1.

Change-Id: I1bb20a0d5b6e0cc10ac55901c28d8f93aac61c09


[ROCm/clr commit: 54d1d69c0a]
2021-01-31 01:16:48 -06:00
Chauncey Hui 5cf28c4843 SWDEV-2 - Change OpenCL version number from 3249 to 3250
[ROCm/clr commit: b7f0fd0354]
2021-01-29 03:00:06 -05:00
Saleel Kudchadker 7a08212ce1 SWDEV-257787 - Add log for tracking copy signals
Change-Id: I713e8463916a85a634a1ec2309bbd46a11c461a8


[ROCm/clr commit: 629a2d8ef3]
2021-01-28 13:25:49 -05:00
Vladislav Sytchenko 95655fd5fd SWDEV-268186 - [PAL] Enable MALL for persistent allocations
Change-Id: Ibc21255d5be52289cb4de3de7d12e0415fd1bc91


[ROCm/clr commit: 0d0739a39b]
2021-01-28 12:47:18 -05:00
Vladislav Sytchenko b8ce1cc059 SWDEV-1 - Update ISA table
Disable gfx9+ for GSL.

Enable gfx9+ (except MI100/200/300) for PAL.

Change-Id: Ic5a238af939e1d8795503aae39df6a6ece50a9d2


[ROCm/clr commit: 81e331dc42]
2021-01-28 11:26:22 -05:00
kjayapra-amd 4693ecf345 SWDEV-270013 - Adding code to differentiate between kern_arg + fine_grain and fine_grain segment of system memory.
Change-Id: Id0404b2dab8561946ad0a90a77030582f7e021a4


[ROCm/clr commit: 85fafb0561]
2021-01-28 09:48:17 -05:00
kjayapra-amd 552218f005 SWDEV-261215 - Updating file handle APIs with file sharing option to accomodate back to back hipModuleLoad calls.
Change-Id: I8fd833b678ca38c60e2d7d02295fd01df0af5592


[ROCm/clr commit: e8208de6c1]
2021-01-28 09:47:41 -05:00
Chauncey Hui a26b7cc43a SWDEV-2 - Change OpenCL version number from 3248 to 3249
[ROCm/clr commit: a231391423]
2021-01-26 03:00:05 -05:00
German Andryeyev f96e973378 SWDEV-257787 - Add engine tracking per signal
- The logic will trace compute, sdma read/write operations and
apply signals when necessary
- ROC_CPU_WAIT_FOR_SIGNAL, ROC_SYSTEM_SCOPE_SIGNAL
and ROC_SKIP_COPY_SYNC were added to control the tracking

Change-Id: I9e8e6174c63bf7784f7ab00964e2918c8667d364


[ROCm/clr commit: dbc7abaecf]
2021-01-25 12:34:45 -05:00
Chauncey Hui 768a4383cd SWDEV-2 - Change OpenCL version number from 3247 to 3248
[ROCm/clr commit: 99da7ecba5]
2021-01-24 03:00:07 -05:00
Jason Tang 6fb4972c65 SWDEV-269147 - Disable ROC offline devices for now
Change-Id: I520f3c8e56db91cbc384d08beba4e0bd4626941d


[ROCm/clr commit: 1e08a3e0cd]
2021-01-23 14:48:07 -05:00
Chauncey Hui d7d703a7bc SWDEV-2 - Change OpenCL version number from 3246 to 3247
[ROCm/clr commit: 29596ac3be]
2021-01-23 03:00:04 -05:00
Jason Tang 8eb41aee8c SWDEV-268345 - Enable address sanitizer build when ADDRESS_SANITIZER is ON
Change-Id: I09e5c5b2c21637bc67c23267411c2996ee57aad4


[ROCm/clr commit: 64714fdbbe]
2021-01-22 16:21:50 -05:00
German Andryeyev 1d26696235 SWDEV-257787 - Reset active signal if ROCR call failed
- ROCR fails the call for some reason, then the signal will
become invalid and can hang on a wait. The logic will reset the
active signal in such cases

Change-Id: Ia131420200f1bbd7c9a162b8f1b06db8cecf41c6


[ROCm/clr commit: ce2e5eba6b]
2021-01-21 17:29:34 -05:00
Chauncey Hui 2b0953627e SWDEV-2 - Change OpenCL version number from 3245 to 3246
[ROCm/clr commit: de3e8b092c]
2021-01-20 03:00:06 -05:00
German Andryeyev 1086195745 SWDEV-268381 - Enable wait on CPU before SDMA transfer
- There is a performance regression with a HW wait for HSA signal
on ROCr async operation. For now move the logic back to CPU wait.

- Fix profiling issue with multiple HSA signal per single timestamp
object. Some copies require multiple ROCR calls and if profiling is
required, then the execution time is derived from all used signals.

Change-Id: Id003e4abb8c2de378eedc152a7e389500fc6f4ce


[ROCm/clr commit: 5a8946190a]
2021-01-19 18:24:21 -05:00
Chauncey Hui 4bb8cc7f6b SWDEV-2 - Change OpenCL version number from 3244 to 3245
[ROCm/clr commit: 44659d5d7e]
2021-01-19 03:00:05 -05:00
Tony Tye a05c745d54 SWDEV-268864 - Remove duplicatation of isa related information
Remove targetId_, gfxipMajor_, gfxipMinor_ and gfxipStepping_ from
device::Info as they are now available in device::Isa.

Change-Id: I381b1d4798ebf50655740e004a01ac7f86dbf668


[ROCm/clr commit: c2308216dd]
2021-01-18 22:32:37 +00:00
Jason Tang 3b5b0175ac Fix build error when building with clang++
Change-Id: If1c9fbd6af6028bd39ff43ee53d74d5e778e2a27


[ROCm/clr commit: c0730b69d5]
2021-01-18 09:45:19 -05:00
Jatin Chaudhary 3dc9013e52 Adding compiler option to be passed to comgr
Change-Id: I6247cfc8f323e7ccbc95e35408ab3e8a55e16495


[ROCm/clr commit: 9943fcd81b]
2021-01-18 06:25:44 -05:00
Chauncey Hui d4457a2a8a SWDEV-2 - Change OpenCL version number from 3243 to 3244
[ROCm/clr commit: 97dd6c128b]
2021-01-15 03:00:06 -05:00
Saleel Kudchadker fff9c7f413 Cleanup redundant Barrier packet fill function
Change-Id: I31f3250f00a362c2fdd35aca31df177fed7ddb98


[ROCm/clr commit: ce56d04dee]
2021-01-14 12:38:00 -05:00
Tony Tye 38744069df Make HSAILProgram::gpuNullDevice private
Change-Id: I822d1800eff0703a154dac997fe940d232eab542


[ROCm/clr commit: 2026a24438]
2021-01-14 11:12:14 -05:00
Tony Tye 902cf1a239 Update code object handling for GSL, PAL and ROCm
- Correct GSL path to report targets using the TargetID syntax.

- Correct GSL path to check compatibility of code objects when
  loading.

- Add concept of an device isa and create a registery used by ROCm,
  PAL and GSL.

- Support XNACK and SRAMECC target features consistently for PAL and ROCm.

- Correct logic for NullDevices and asserts to avoid memory coruption.

- Allow all NullDevices to be created for HIP.

- Numerous other code improvements.

Change-Id: I40abf3d2b22249c1492d1af5919665f8184f4e0e


[ROCm/clr commit: c7e8d91e14]
2021-01-14 11:11:51 -05:00
Chauncey Hui b43d61e48f SWDEV-2 - Change OpenCL version number from 3242 to 3243
[ROCm/clr commit: 4c16051f6d]
2021-01-14 03:00:06 -05:00
Tony Tye 44c3b775a4 Use strncpy
Use strncpy instead of strcpy to ensure the arrays will not be
overflowered. Only copy one less than size of char array to leave a
NUL character at the end even if the copy is truncated provided the
original object is zeroed memory.

Change-Id: I00f7679630cf28dcb9a51cb0aba2810a4f4c72b9


[ROCm/clr commit: e0448535a3]
2021-01-13 08:24:28 +00:00
Tony Tye 2476472bcb Make hsa_agent_t handles use pointer to device::Device
For roc devices create hsa_agent_t handles using a pointer to the
device::Device. This ensures each device has a different hsa_agent_t
handle. This may be necessary to ensure the loader symbol lookup will
search only symbols for the correct device.

Change-Id: Iee6dd40d68bf22a02ce8c75cbe5ac8f5a0d9e418


[ROCm/clr commit: 76c371d78a]
2021-01-13 08:24:28 +00:00
Tony Tye 4bfc88db5f Simplify handling of Settings
roc:Settings and pal::Settings are derivations. Allocate them as their
derived class then assign that to the base class member to avoid the
need for a static_cast.

Use device::settings to access the Settings consistently.

Change-Id: I0f85157962fbf6fed176da0caf83b723bcbe1452


[ROCm/clr commit: 583dddf6b6]
2021-01-13 08:24:28 +00:00
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
Tony Tye a34ae9cfcf Ensure dump file names do not contain special characters
When TargetID is supported, the isa name will contain ':' characters
that are not legal in Windows file names. So replace all
non-aphanumeric or '+'/'-' characters with '_' to ensure the file name
will be legal on any file system.

Change-Id: I0b73a6188c186f75f1d2e8af19ade87667cbfe0b


[ROCm/clr commit: ed6d54b416]
2021-01-13 08:24:28 +00:00
Chauncey Hui bdb6b6fb71 SWDEV-2 - Change OpenCL version number from 3241 to 3242
[ROCm/clr commit: dba4c06461]
2021-01-13 03:00:06 -05: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