Gráfico de commits

145 Commits

Autor SHA1 Mensaje Fecha
Alex Xie b5b1ccc990 SWDEV-290122 - OpenGL tests fails with CL_MEM_ALLOCATION_ERROR
Change-Id: I34d7063f05dd46c32cf59a88c455691ba5099679
2021-08-22 23:56:07 -07:00
Vladislav Sytchenko 0b1481d4f1 SWDEV-289548 - [PAL] Revive Raven 2 support
Revert back to using the Raven (gfx902) target ID for Raven 2 (gfx909).
This is due to the HSAIL compiler not supporting gfx909.

In theory there should be no issue with running Raven isa on Raven 2.

Change-Id: I425edebc99075799eda5522fad231b8fb3184873
2021-08-22 23:56:07 -07:00
Vladislav Sytchenko 7f0c18457d SWDEV-273235 - Initial support for Windows CMake
This change refactors the current ROCclr cmake build to accomodate a
more modular approach. This allows easier support for multiple compiler
and/or multiple runtime backends.

Currently supported compilers:
    HSAIL - enabled by ROCCLR_ENABLE_HSAIL (defaults to OFF)
    LC    - enabled by ROCCLR_ENABLE_LC    (defaults to ON)

Currently supported runtimes:
    HSA - enabled by ROCCLR_ENABLE_HSA (defaults to ON)
    PAL - enabled by ROCCLR_ENABLE_PAL (defaults to OFF)

Any configuration is supported as long as at least one compiler and one
runtime is enabled.

Since ROCclr clients can configure it differently, one cannot reuse the
same ROCclr build artifacts between different clients. To assure this,
this patch assumes that ROCclr will be built as part of the clients
project.

Change-Id: Id4a5c43634296802b8ae87d1ad5984968391ccaf
2021-08-22 23:56:00 -07:00
Jason Tang 8cac880779 SWDEV-277566 - HSAIL: put back the original setKernels logic for now
In HSAIL path, kernel akc info is obtained after code object
loading, and kernel signature creation requires the akc info
when one of the kernel argument is a reference object.

Change-Id: I9cdb1dbf2c72f4620b0b6e46a88402a2473c3e97
2021-05-20 11:16:48 -04:00
Jason Tang 8aa89274c8 SWDEV-277566 - Fix LinuxPro build
Change-Id: I3e15ae55591d669a87ce0d69fecf9fa32b85b0a6
2021-05-17 15:18:40 -04:00
Jason Tang e1b226588f SWDEV-277566 - Fix HIP/PAL build
Change-Id: Ib460ac70423ebc3aceab22829cd2606d0db20f59
2021-05-15 12:24:18 -04:00
Saleel Kudchadker e5e635f9bf SWDEV-283726 - Workaround for rocprof hang
This addresses the rocprof hang seen with direct dispatch. The
workaround queues the handler back if any of the signal value in the batch
is not decremented. To rememmber the last position in the list, we save
the parsed command in the current timestamp struct.

Change-Id: I02959e463cfe3cee83c54808ffd6e6f48f43b4e8
2021-05-13 11:58:03 -04:00
Jason Tang 211ba25b4e SWDEV-277566 - Separate code object loading from building
Change-Id: I87b8178f55e8ef23762dfe11fab71665ba680f00
2021-05-13 08:41:35 -04:00
German Andryeyev 1b82ff6678 SWDEV-286150 - Fix compilation with PAL_GPUOPEN_OCL disabled
Change-Id: If6d77ecce7395023db4aa9cb1ff494bc64cb1f17
2021-05-12 22:48:45 -04:00
Vladislav Sytchenko bbe6246f19 SWDEV-273235 - Windows PAL/LC fixes
HIP should be built with HSAIL support disabled.

Currently HSAILProgram::info() and VirtualGPU::buildKernelInfo() expose
ACL interfaces directly. This should not be allowed.

Change-Id: Iae15d4f19be16806826f2f6cb600752c11f97fc1
2021-05-11 17:41:09 -04:00
Brian Sumner 6d09a83b2d SWDEV-285332 - move common context into parent
Change-Id: I99ceb62ad948e1fa9d1dcaa5ede98626cc95bea7
2021-05-09 09:18:39 -07:00
Vladislav Sytchenko ece83262de SWDEV-273235 - Minor build fixes for Windows CMake
Change-Id: Ia0631c8d6c2a58526b9938cfd141cbe64437f8fb
2021-05-05 14:32:47 -04:00
pghafari 89168d4812 SWDEV-245532 - HIP - Vulkan interop semaphores
linuxpro syntax update

Change-Id: Id77e0d82c504fb7a1bd8edfac7dc962e428c87b4
2021-04-28 13:48:25 -04:00
pghafari 6e69bcef9e SWDEV-245532 - HIP - Vulkan interop semaphores
linuxpro syntax update

Change-Id: I947f24f67ed59c15fe5047348b0c005e19e93544
2021-04-28 07:44:22 -04:00
German Andryeyev 6c5fe7feb5 SWDEV-86035 - Update PAL interface to 665
Change-Id: Ic38417ac5ff426119d721790a467552633110973
2021-04-27 18:10:32 -04:00
German Andryeyev cdccb6ebc9 SWDEV-86035 - Update the new DOPP flag in PAL interface
Change-Id: Ia3de452bf77220ae0403b3427e13c6ad26009128
2021-04-27 17:51:23 -04:00
pghafari 6e69864a0c SWDEV-245532 - HIP - Vulkan interop semaphores
linuxpro syntax update

Change-Id: I184e1293ff4b046c5f8376d06f1d8e9509cd7ba2
2021-04-27 13:28:49 -04:00
pghafari fe9dbf1ded SWDEV-245532 - HIP - Vulkan interop semaphores
syntax update

Change-Id: I1eefb8048adbe18c84276092520c1e0b01164e82
2021-04-27 07:11:58 -04:00
pghafari 582d12b32f SWDEV-245532 - HIP - Vulkan interop semaphores
Change-Id: Ib79328ce4ec2f8ac3aade59fde4fd30e2d6e5cba
2021-04-26 13:20:58 -04:00
German Andryeyev e553b2763a 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
2021-04-20 12:59:44 -04:00
German Andryeyev 57d668ab8f SWDEV-86035 - use the new field for SE mask
Change-Id: I51ed37f1194264876a3099189f35216d01988771
2021-04-16 11:10:34 -04:00
Sourabh Betigeri 70af4db3a6 SWDEV-279447 - Change to report 64kB of LDS for Windows as well to match the runtime behavior of HIP
Change-Id: I80b66346e17ba23766b7c9fe4e40ca94cb07f54b
2021-04-15 13:26:35 -04:00
Vladislav Sytchenko c7b50bb890 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
2021-04-14 12:25:54 -04:00
Julia Jiang aef4ab1fc8 SWDEV-268186 - OCL ReBar optimization
Change-Id: I69d8bce8d48a5b6f94a05272c83ee91fbec1688c
2021-04-13 15:08:32 -04:00
Vladislav Sytchenko cbeb372e46 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
2021-04-12 14:55:06 -04:00
Jason Tang 1a38be8972 SWDEV-277559 - Remove AMDIL
The rest of AMDIL support will be removed along with orca backend.

Change-Id: I0462501e7147dc4b99870fd02034d0a4a0496e55
2021-04-09 14:15:15 -04:00
Sourabh Betigeri 48e470a14c SWDEV-273265 - Reverting wrong scope resolution operator VirtualGpu in the declaration releaseGpuMemoryFence()
Change-Id: Ia67ee1e4a3e86235caf8b7c585c65372f7d55426
2021-04-07 09:24:10 -07:00
Sourabh Betigeri 21ea81d5b9 SWDEV-273265 - Fix to wait on a pending dispatch in PAL.
Change-Id: I431cedfef5d5cb727c35ba8e294528017bfe2088
2021-04-06 13:13:07 -04:00
Julia Jiang f22ceb0fd8 SWDEV-272268, SWDEV-268186 - OCL change for Rebar optimization:fix regressions in OCLMemInfo and Conformance basic test
Change-Id: I3e709942b5f43ba52a4cb0824a2e6b3202d4b405
2021-04-06 10:53:12 -04:00
Alex Xie 0de4b2962c 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
2021-03-31 11:17:56 -04:00
Alex Xie 090cf6c6d3 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
2021-03-30 15:56:01 -04:00
pghafari f1d58ae0d6 SWDEV-245532 - HIP - Vulkan interop
Change-Id: I741f48e095c203bb1304f5b5e44f8c87b14b5497
2021-03-29 12:06:35 -04:00
pghafari e64ce02ea2 SWDEV-245532 - HIP - Vulkan interop
Change-Id: I0be4279bb1037640d138dd07e125b78a719743ca
2021-03-26 13:59:13 -04:00
pghafari 6e888b15ff SWDEV-245532 - HIP - Vulkan interop
Change-Id: I0e5bc4862925f344b3fcadf1fa0c0acaeaae6c4d
2021-03-23 23:40:17 -04:00
Jason Tang 8d01cbddbe SWDEV-3 - Backport M0 changes
Change-Id: I36f676713442479ede142b7e887656f0b658bc7b
2021-03-10 10:25:42 -05:00
Vladislav Sytchenko 27e3b875f7 SWDEV-232428 - Fix CI regressions caused by 99e8ac5
Change-Id: I36e9ce964f4d7733450eee356d425d23e1d7ff2c
2021-03-09 11:09:55 -05:00
Vladislav Sytchenko 99e8ac55cd 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
2021-03-09 10:44:34 -05:00
German Andryeyev dee99ca807 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
2021-03-05 11:36:12 -05:00
Vladislav Sytchenko b4064ad557 SWDEV-1 - Remove unannounced asic
Change-Id: I0ec360e7f924dcfbc26bc70981a714abb57804c9
2021-03-03 23:21:41 -05:00
Vladislav Sytchenko d8c1da5669 SWDEV-1 - [PAL] Force luxmark to use HSAIL on gfx10+
Change-Id: I929d6d15365d3a6e9fd7eaed0b8b4910694f9504
2021-03-02 16:16:56 -05:00
Tao Sang c1c5c89cd0 SWDEV-270973 - Add missing copyright headers
Change-Id: I6bb17650f74371dae6e29c59fd6bb2022cc062fe
2021-03-02 12:01:54 -05:00
Vladislav Sytchenko 9e8a2f3266 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
2021-02-24 11:35:49 -05:00
Vladislav Sytchenko dbcf023cb1 SWDEV-86035 - [PAL] Propagate gl2Uncached setting to the backend
Change-Id: I594f304a20d448fe198ec27901e6c97b265c1183
2021-02-21 13:52:38 -05:00
Vladislav Sytchenko 263173914f SWDEV-86035 - [PAL] Fix runtime init
The settings need to be populated ASAP, otherwise the dummy context is
not created properly.

Change-Id: Iede0066308bb601dc68164e894775a646a0372f1
2021-02-20 16:39:13 -05:00
Vladislav Sytchenko 671778bdd3 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
2021-02-16 17:19:57 -05:00
Vladislav Sytchenko ac237ac094 SWDEV-271486 - [PAL] Temporarily disable reporting sramecc support
Change-Id: I089af8f8a4645ce5353f351dbf3a018cd31df216
2021-02-16 10:39:18 -05:00
Ravi C Akkenapally 0a5f9a3b10 SWDEV-179105 - Stream Operations: Add support for Wait and Write
Change-Id: Ibffa1d6d573826b64763da280074a77271d66808
2021-02-15 17:02:38 -08:00
kjayapra-amd 2df099df9e SWDEV-270013 - Allocate kernel_arguments from kern_arg & finegrain pool instead of coarse grain.
Change-Id: Id4c6977934fdd6ef2311f6e75593801f1e51983c
2021-02-15 18:20:08 -05:00
German Andryeyev 70f06c79fa SWDEV-86035 - switch PAL interface to 656 version
Change-Id: I162ba6e49aa866c013f37a114df5bb7ea3e08874
2021-02-12 13:08:59 -05:00
Joseph Greathouse 54d1d69c0a 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
2021-01-31 01:16:48 -06:00