Commit graph

123 Commits

Autor SHA1 Nachricht Datum
Vladislav Sytchenko c585ae92a7 SWDEV-280473 - Support HSAIL shared library build
This change makes HSAIL usage similar to that of Comgr. By default, the
runtime will statically link against it, however if HSAIL_DYN_DLL is
defined, then the runtime will try to dynamically load HSAIL.

Currently stick to statically linking to HSAIL. In a feature patch the
dynamic loading behaviour will be enabled.

Change-Id: I6a78a4375975cf847f236b200404c8cf941d012b


[ROCm/clr commit: c7b50bb890]
2021-04-14 12:25:54 -04:00
Julia Jiang 7bb189c4c5 SWDEV-268186 - OCL ReBar optimization
Change-Id: I69d8bce8d48a5b6f94a05272c83ee91fbec1688c


[ROCm/clr commit: aef4ab1fc8]
2021-04-13 15:08:32 -04:00
Vladislav Sytchenko 7b3014ec69 SWDEV-280473 - Remove HSAIL support from the ROCm backend
In adition to removing the HSAIL logic from the ROCm backend, guard all
of the HSAIL includes in the common layer behind the WITH_COMPILER_LIB
define. This is to avoid including HSAIL headers when building with
no support for it.

In common logic replace the use of the aclType enum with the new
Program::file_type_t enum. This is essentially a local copy of the HSAIL
enum to avoid including any HSAIL headers.

Change-Id: Ica0651d1b29dfccc255cc584eb82a5cb35e1b520


[ROCm/clr commit: cbeb372e46]
2021-04-12 14:55:06 -04:00
Jason Tang 636bdbd0fa SWDEV-277559 - Remove AMDIL
The rest of AMDIL support will be removed along with orca backend.

Change-Id: I0462501e7147dc4b99870fd02034d0a4a0496e55


[ROCm/clr commit: 1a38be8972]
2021-04-09 14:15:15 -04:00
Sourabh Betigeri d2842bfc54 SWDEV-273265 - Reverting wrong scope resolution operator VirtualGpu in the declaration releaseGpuMemoryFence()
Change-Id: Ia67ee1e4a3e86235caf8b7c585c65372f7d55426


[ROCm/clr commit: 48e470a14c]
2021-04-07 09:24:10 -07:00
Sourabh Betigeri 6ec57b845c SWDEV-273265 - Fix to wait on a pending dispatch in PAL.
Change-Id: I431cedfef5d5cb727c35ba8e294528017bfe2088


[ROCm/clr commit: 21ea81d5b9]
2021-04-06 13:13:07 -04:00
Julia Jiang 2f8170b85d SWDEV-272268, SWDEV-268186 - OCL change for Rebar optimization:fix regressions in OCLMemInfo and Conformance basic test
Change-Id: I3e709942b5f43ba52a4cb0824a2e6b3202d4b405


[ROCm/clr commit: f22ceb0fd8]
2021-04-06 10:53:12 -04:00
Alex Xie e0c4654f3e SWDEV-268914 - Linux, AMF, tests fail to scale images down
This is part 2 of the change. This is for PAL backend.
The parent buffer sometimes has newer data than the sub buffer or image.
We always need to copy the data into copybuffer in pitch workaround.

Tests:
clinfo
Conformance tests: all images test, info, API, basic.
Internal runtime tests

Change-Id: I97d876ac75b240e69b48244be4c9e522db24f8ac


[ROCm/clr commit: 0de4b2962c]
2021-03-31 11:17:56 -04:00
Alex Xie 06349fd486 SWDEV-276304 - [Navi][OpenCL][Linux]AMF Converter generate corrupted Frames
This is part 2 of the code change for PAL.
The copy image workaround could be recursively used by ROCclr blit kernel.
Avoid such situation by using stack variable.

Tests:
clinfo.
Conformance tests - basic, API, info, and all images tests.
Internal runtime tests - all passed.

Change-Id: I3c822e55398cdf35c2c4a46ed9fc20fbee7cc908


[ROCm/clr commit: 090cf6c6d3]
2021-03-30 15:56:01 -04:00
pghafari 9344b16621 SWDEV-245532 - HIP - Vulkan interop
Change-Id: I741f48e095c203bb1304f5b5e44f8c87b14b5497


[ROCm/clr commit: f1d58ae0d6]
2021-03-29 12:06:35 -04:00
pghafari 457ca7c990 SWDEV-245532 - HIP - Vulkan interop
Change-Id: I0be4279bb1037640d138dd07e125b78a719743ca


[ROCm/clr commit: e64ce02ea2]
2021-03-26 13:59:13 -04:00
pghafari 01db6a04b3 SWDEV-245532 - HIP - Vulkan interop
Change-Id: I0e5bc4862925f344b3fcadf1fa0c0acaeaae6c4d


[ROCm/clr commit: 6e888b15ff]
2021-03-23 23:40:17 -04:00
Jason Tang 64f4e4c01c SWDEV-3 - Backport M0 changes
Change-Id: I36f676713442479ede142b7e887656f0b658bc7b


[ROCm/clr commit: 8d01cbddbe]
2021-03-10 10:25:42 -05:00
Vladislav Sytchenko b1b12e51d1 SWDEV-232428 - Fix CI regressions caused by 9eb113d
Change-Id: I36e9ce964f4d7733450eee356d425d23e1d7ff2c


[ROCm/clr commit: 27e3b875f7]
2021-03-09 11:09:55 -05:00
Vladislav Sytchenko 9eb113d991 SWDEV-232428 - PAL Hostcall support
Since the majority of the Hostcall implementation now sits in the
commmon layer, the PAL backend simply just needs to invoke it. One thing
that is missing though is HSA signal support.

The newly added pal::Signal class is a light emulaion of what HSA
signals provide. The current implementation is just enough to get
Hostcall working, but it can be expanded in the future if needed to
fully emulate HSA signals.

The major difference for now between PAL and ROCm hostcall
implemenations is that PAL doesn't support blocking signals. This will
be enabled in the near future. For now use active wait for PAL.

Change-Id: I746557354ab9d71a7d4a31f9320fcc2fee5aee7f


[ROCm/clr commit: 99e8ac55cd]
2021-03-09 10:44:34 -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
Vladislav Sytchenko 9f2bb57232 SWDEV-1 - Remove unannounced asic
Change-Id: I0ec360e7f924dcfbc26bc70981a714abb57804c9


[ROCm/clr commit: b4064ad557]
2021-03-03 23:21:41 -05:00
Vladislav Sytchenko fe244055b7 SWDEV-1 - [PAL] Force luxmark to use HSAIL on gfx10+
Change-Id: I929d6d15365d3a6e9fd7eaed0b8b4910694f9504


[ROCm/clr commit: d8c1da5669]
2021-03-02 16:16:56 -05:00
Tao Sang e6bde7467e SWDEV-270973 - Add missing copyright headers
Change-Id: I6bb17650f74371dae6e29c59fd6bb2022cc062fe


[ROCm/clr commit: c1c5c89cd0]
2021-03-02 12:01:54 -05:00
Vladislav Sytchenko cae2f29c10 SWDEV-86035 - [PAL] Correct allocation logging
Since the allocation can be a suballocation, we should print both the
VA range for the allocation and the underlying memory object.

Change-Id: Ic9c707bbb78113b366d1b2c688e6fd33bdc8fd94


[ROCm/clr commit: 9e8a2f3266]
2021-02-24 11:35:49 -05:00
Vladislav Sytchenko c122c28e5d SWDEV-86035 - [PAL] Propagate gl2Uncached setting to the backend
Change-Id: I594f304a20d448fe198ec27901e6c97b265c1183


[ROCm/clr commit: dbcf023cb1]
2021-02-21 13:52:38 -05:00
Vladislav Sytchenko 007671faf8 SWDEV-86035 - [PAL] Fix runtime init
The settings need to be populated ASAP, otherwise the dummy context is
not created properly.

Change-Id: Iede0066308bb601dc68164e894775a646a0372f1


[ROCm/clr commit: 263173914f]
2021-02-20 16:39:13 -05:00
Vladislav Sytchenko 086bdf83b4 SWDEV-232428 - Push hostcall implementation to the device layer
This change unifies the hostcall implementation for all the backends,
by pushing the common logic to the device layer. This is done by
replacing the use of hsa_signal_t with device::Signal (a light wrapper
around it).

Change-Id: I7b6fca7930b5a0b199da5d85e2e048354cc04e7b


[ROCm/clr commit: 671778bdd3]
2021-02-16 17:19:57 -05:00
Vladislav Sytchenko 42c3dc5c6e SWDEV-271486 - [PAL] Temporarily disable reporting sramecc support
Change-Id: I089af8f8a4645ce5353f351dbf3a018cd31df216


[ROCm/clr commit: ac237ac094]
2021-02-16 10:39:18 -05:00
Ravi C Akkenapally 6629930067 SWDEV-179105 - Stream Operations: Add support for Wait and Write
Change-Id: Ibffa1d6d573826b64763da280074a77271d66808


[ROCm/clr commit: 0a5f9a3b10]
2021-02-15 17:02:38 -08:00
kjayapra-amd 4583cbafee SWDEV-270013 - Allocate kernel_arguments from kern_arg & finegrain pool instead of coarse grain.
Change-Id: Id4c6977934fdd6ef2311f6e75593801f1e51983c


[ROCm/clr commit: 2df099df9e]
2021-02-15 18:20:08 -05:00
German Andryeyev 64360211fe SWDEV-86035 - switch PAL interface to 656 version
Change-Id: I162ba6e49aa866c013f37a114df5bb7ea3e08874


[ROCm/clr commit: 70f06c79fa]
2021-02-12 13:08:59 -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
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
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
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
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 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 303b379d62 [NFC] Reorder some system includes alphebetically
Change-Id: I5245eb8482b447f6ce95e1c0b686d09ca7d20deb


[ROCm/clr commit: 8992f9e18d]
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
Jason Tang ae7ec74669 Fix Windows 32bit build
Change-Id: Iab4a9a3f15c47d2c13d09ad098c52b21e078fd0a


[ROCm/clr commit: 318eecfc87]
2021-01-12 09:23:00 -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
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
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 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
Jason Tang fdf6d8f1d2 SWDEV-260632 - [PAL] Simplify NullDevice::init()
Change-Id: I9d44162f38806e3742c18da48e382baafeb7060f


[ROCm/clr commit: 3351b9c993]
2020-11-21 10:00:35 -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 f8d007fadb [PAL] Navi23 support
Change-Id: I10bb0653746060bd83ca7feda10fdafc07ced845


[ROCm/clr commit: 026baec57b]
2020-11-13 15:08:04 -05:00