Commit Graph

65 Commits

Author SHA1 Message Date
Christophe Paquot 2b3875882f Couple of cleanups.
Remove queue limitation since we loop through HW queues now.
Add a DevLogError if we fail to create the hsa_queue. A ticket showed a regression there.

Change-Id: I4f58e405f88e75600a762f6d6352838c969cdb5e


[ROCm/clr commit: b54c3f7db9]
2020-04-29 09:18:07 -07:00
Saleel Kudchadker 6b7c6748b1 Add a threshold for forcing ROCr to take blit path
This workaround is to avoid performance penalty of SDMA engine
taking a while to clock up from a lower DPM state. Add env var
GPU_FORCE_BLIT_COPY_SIZE (1024 by default for HIP in KB). Forcing
Src and Dst agent to be amdgpu makes ROCr take blit copy path for
what otherwise should have been SDMA copy

Change-Id: I222f687155f86000d17d66d25182e490b6710463


[ROCm/clr commit: 5f64e6e7ad]
2020-04-28 17:11:24 -04:00
Vlad Sytchenko a646af408f Add entry for another unannounced asic
Change-Id: I63c6ce6221e812a33e9427841be49840a8f48154


[ROCm/clr commit: 2963d0d454]
2020-04-28 14:23:57 -04:00
Vlad Sytchenko dae0d59594 Add entry for new device id
This is accomodate upcoming Pal::AsicRevision changes.

Change-Id: Ic108b647f3548d34b7aa83d6077fb88452768998


[ROCm/clr commit: 63b90a32c4]
2020-04-28 14:23:49 -04:00
agodavar d6275e96d9 P2PStating buffer allocation when P2P is not enabled between all GPUs
SWDEV-232580 & SWDEV-232580
Allocate p2p statging buffer when full P2P access is not available between all devices.
p2p staging buffer will eventually be used when required.

Change-Id: If8490ba7b1c52c432c1e942ae95421b9d2ec7097


[ROCm/clr commit: f149fe0803]
2020-04-28 07:10:57 -04:00
Alex Xie c158b9b3d0 SWDEV-232894 Port hipMemcpy optimizations from HCC to VDI
Change-Id: I6bebe9ac503a9f80d067aeea8a848409ad210338


[ROCm/clr commit: 009d0b5f55]
2020-04-27 14:53:58 -04:00
German Andryeyev 0567dd299a Don't attempt to reuse the cooperative queue
Change-Id: I0e98e292a562715a7b395118f899af859f3e42bb


[ROCm/clr commit: 082cbfa1f5]
2020-04-27 09:18:05 -04:00
Matt Arsenault 9ad645d7a8 Add comgr macros to public definition export
This should allow the cmake build for the opencl runtime to work
without manually adding these definitions. The PAL build also adds
these as private defines in its build, so change rocm to match. This
should probably be including these a config header to benefit other
builds, but this will at least avoid some clutter in the opencl build
for now.

Change-Id: I1044984b87ba3fc72e280e255ceea2dd9e3337ff


[ROCm/clr commit: c60d7d860d]
2020-04-24 12:12:54 -04:00
Matt Arsenault df90e345d0 Don't use include_directories for ROCR includes
Use the modern cmake, target specified method.

Change-Id: Icd7196bfccb85f255bbc01bc87c6667d961bb236


[ROCm/clr commit: 350d54e198]
2020-04-24 11:05:40 -04:00
Matt Arsenault e5fb81bb55 Modernize cmake usage for finding amd_comgr
Don't use find_path on the header, it's redundant with the interface
include directories on the imported target. Use the target specific
forms for including and linking it.

Change-Id: I3923143c992888ee7d5ee1130084ac2e5eaa0f3a


[ROCm/clr commit: 83455f36c5]
2020-04-24 11:03:27 -04:00
Matt Arsenault 36c3008b33 Don't use CMAKE_SOURCE_DIR
This is almost never the correct thing to use since it breaks adding
this as a subproject build in a larger build. Switch to refer to
CMAKE_CURRENT_SOURCE_DIR, which is equivalent in a standalone build.

Change-Id: Ib8dbbc0668491f4227389b9a5b27da770b3bc5ce


[ROCm/clr commit: a36f19df51]
2020-04-24 11:02:52 -04:00
German Andryeyev 715425d074 SWDEV-232807
[ROCm][TCT][HIP] cooperative stream test case is failing.

Make sure lockXfer() in the blit manager returns a valid value.
Port the latest PAL backend logic into the ROCr backend.
This change doesn't fix the issue, reported in the ticket.

Change-Id: I54101a824f49a2dcfbbf5414cb5b3af41745306d


[ROCm/clr commit: 89133a7301]
2020-04-23 15:01:02 -04:00
Michael LIAO 78e7b67076 [vdi] Add device assertion support.
- Once device assertion occurs, abort the host execution as well.
- TODO: This's the initial support. As we need to drain hostcall queue
  to ensure device assertion message being flushed out, hostcall
  listener needs an interface to explicitly drain its queue.

Change-Id: I8a04400aa7109bfd054ae5777c41a4abbf0db4a9


[ROCm/clr commit: 97f55b5c7f]
2020-04-22 10:03:55 -04:00
kjayapra-amd 236705c62f SWDEV-229840 - Improve error messages on ROCCLR Layer.
Change-Id: Iab7d9156cdc206db86385aa05023a0095ed40f92


[ROCm/clr commit: 7458bf9964]
2020-04-19 20:01:49 -04:00
Matt Arsenault 919f758ba0 Fix -Winconsistent-missing-override warnings
Change-Id: I67d4a853045197ed28e5d616a4afc86f1d6a1d7c


[ROCm/clr commit: 55cc77d7d1]
2020-04-17 15:24:39 -04:00
German Andryeyev 25f9a11766 SWDEV-231691
- Problem with CL_DEVICE_GLOBAL_FREE_MEMORY_AMD query.
Check if allocated memory exceeds the total size.

Change-Id: Ieed8829860663bac1acfa41d21309dff4d8772c7


[ROCm/clr commit: e289ebdf20]
2020-04-17 09:03:04 -04:00
Vlad Sytchenko 4720e03e65 Revert "(SWDEV-210228)"
This reverts commit 9ce8e0eeb8.

Change-Id: I1e24ce384ae4cc7b39b019dac328e17cca687d38


[ROCm/clr commit: e57dbb684f]
2020-04-14 16:15:58 -04:00
kjayapra-amd 93d3d283b5 SWDEV-229480 - Fixing type on commit: 5503b370fa
Change-Id: I19f0bddb9db4140641c10a0e36ed4302c05efe2a


[ROCm/clr commit: 348bb0d59f]
2020-04-13 11:48:35 -04:00
Payam bb8a9ee6e6 updating copyrights
Change-Id: I592a84b64c85ac07ee7db7bb43c73ce623662246


[ROCm/clr commit: ddea39382b]
2020-04-10 14:45:28 -04:00
Vladislav Sytchenko 668d49db62 Don't call updateFreeMemory() if the allocation failed
Change-Id: I978cb2e463914f6a48b3d4a9057c0f67e7bdb646


[ROCm/clr commit: c781f4d419]
2020-04-09 18:41:11 -04:00
kjayapra-amd 5503b370fa SWDEV-229480 - Fixing itoa conversion in LogError.
Change-Id: I9f11394c0e13e8c57d415c4f19fcd1de7935ef23


[ROCm/clr commit: 6bd52dd052]
2020-04-09 18:30:35 -04:00
Vladislav Sytchenko 040c4fbcc0 Enable large allocations by default for gfx8+ in GSL
Change-Id: Ie386fca59ea3f364d49d5390d87412f7fc869f8e


[ROCm/clr commit: a8e0f92bc4]
2020-04-07 12:37:57 -04:00
Alex Xie 8d5b686e8b SWDEV-229731 - [Lnx][Rocm][Navi]Support images in full Opencl Conformance tests
1. Enable pitch workaround
2. When we use copy image, we don't need to create the custom pitch image
3. wrtBackImageBuffer_ stores device memory object, not amd image object.

Tests:
conformance kernel read / write test pass with this code change.

Change-Id: I7dca3127adde6ac83e78dd270a2256ebed55c60d


[ROCm/clr commit: 43b9863e17]
2020-04-04 09:43:03 -04:00
Alex Xie cd4472490d SWDEV-229731 - [Lnx][ROCm][Navi]Support images in full OpenCL conformance tests
Duplicate similar blit logic from PAL path

Tests:
1D Array image read/write tests and copy image tests passed

Change-Id: I838bbde252ad0108bfeb82c0c2b669881747c0af


[ROCm/clr commit: 3e247d2afd]
2020-04-04 09:28:37 -04:00
German Andryeyev c07677f99d SWDEV-79445 - HIP improvement
- Make sure only one GPU barrier is issued per dispatch
when memory tracking is disabled

Change-Id: I974569ab42a8835304a2930eef87b561a3750327


[ROCm/clr commit: 481cecec78]
2020-04-03 12:21:03 -04:00
kjayapra-amd 817764a12b SWDEV-229840 - Improve Error Codes. RocKernel and RocProgram
Change-Id: I8f785308e0562a50924f8bdd02e88c92a759f01a


[ROCm/clr commit: cd7de89fc3]
2020-04-02 22:30:53 -04:00
Vladislav Sytchenko 9ce8e0eeb8 (SWDEV-210228)
Don't error when querying the number of devices if there are no devices present in the system.

We should just return 0 for the number of devices in this case and let the application handle this situation.

Change-Id: I20614ade5e649f3ce9ddd970d4b38bfe296f6cdb


[ROCm/clr commit: 2a223ecec6]
2020-04-01 13:36:44 -04:00
German Andryeyev 8bda935a71 SWDEV-184709 - support hipLaunchCooperativeKernel()
- Enable cooperative groups support, based on ROCr capability

Change-Id: I975bcea0af7865009eaed24454ce71d897ea8fc4


[ROCm/clr commit: 481d526859]
2020-04-01 12:13:33 -04:00
Todd tiantuo Li 7de769dcc9 SWDEV-222615 - delete VirtualGPU::Queue and return NULL when Pal::IDevice::CreateQueue() fails, in order to avoid undefined behavior and crash.
Change-Id: I4b94d3b3b0495530a8bf7840dc77a98aed9aa8ae


[ROCm/clr commit: b96e25c5f8]
2020-03-31 16:50:53 -04:00
German Andryeyev 29c091d624 SWDEV-224639 - Device memory is still occupied
- Add cache free on OCL context destroy
- Remove std::mem_fun() usage, since it was removed in c++17

Change-Id: If6acd08f13a2298912ecd78fc025dcf0b32aee54


[ROCm/clr commit: 9f795d750d]
2020-03-30 17:39:21 -04:00
German Andryeyev 14aa72890e SWDEV-184709 - support hipLaunchCooperativeKernel()
Add ROCr cooperative queue allocation

Change-Id: I1384482692f4080d31255b09e0f68a21ccad3da8


[ROCm/clr commit: 7ef8dfdfe7]
2020-03-30 16:09:09 -04:00
jujiang 3ee3f4e045 SWDEV-223160, SWDEV-227911- Fix Memory Copy Peer failure on Navi10 MGPU configuration
Change-Id: I2bf559b87cba638b5af858c2d4fe5a252d16a5d9


[ROCm/clr commit: d392082a30]
2020-03-26 10:13:19 -04:00
kjayapra-amd 68fc604f5d SWDEV-216213 - Function to lookup module functions from COMGR.
Change-Id: I3890fb188b5b3ae44d2bb161d1b7e75228e30942


[ROCm/clr commit: d961c64b00]
2020-03-18 12:45:21 -04:00
Vladislav Sytchenko 3f66311210 SWDEV-224023
Correct typo.

Change-Id: I72131a6e0210e7b961e586cd0ae18608d21fc529


[ROCm/clr commit: 52046e41b2]
2020-03-15 16:37:25 -04:00
Jason Tang 7c287466c3 SWDEV-207312 - Fix images_write_cube failure for gfx10
Change-Id: I7f6a8c77eb712103e4c0a5f36bba95093ffbff98


[ROCm/clr commit: 9cfb973c3f]
2020-03-12 17:25:52 -04:00
German Andryeyev 60466af0bb SWDEV-86035 - Switch PAL version to 572
Change-Id: I948bcfdb247a9d2d10c4089fd40d184f8999501b


[ROCm/clr commit: f7c95a7ec5]
2020-03-12 14:27:02 -04:00
German Andryeyev 607745e99c SWDEV-224471 - [19H1][Polaris10][Acer]
Test window will quit or show error message when run OpenCL API.

Add a workaround for the race condition with the first page
during pinning.

Change-Id: I9a27b4e173cf94c84aefcb94e255f11169453d94


[ROCm/clr commit: ab85674f8a]
2020-03-12 14:20:48 -04:00
German Andryeyev c650d026d8 SWDEV-79445 - Fix a regression in Linux
PAL doesn't report queue priorities under Linux

Change-Id: I3e1632ee2bcbbbaf52b45565f6b6aec24c559922


[ROCm/clr commit: c6d3aea572]
2020-03-10 12:39:56 -04:00
Sameer Sahasrabuddhe bf4070b67d SWDEV-204784 - implement printf based on hostcall
The printf call in the device code is expanded by the compiler into a
series of hostcalls that together form a "message". This change
introduces the following functionality in the runtime:
1. Receive a generic message consisting of a series of hostcalls.
2. Process a printf message.

Change-Id: I9d667d6f91607a907a96e46cc5fca55734339747


[ROCm/clr commit: ce4a34bc71]
2020-03-08 23:57:03 -04:00
Vladislav Sytchenko ab1c00cee9 SWDEV-224023
Each WGP consists of 2 CU, so the number of available SIMD units is doubled.

Change-Id: I43978a8a9139c33f5f776b344a36bee927cc187d


[ROCm/clr commit: e76d867740]
2020-03-06 13:43:36 -05:00
German Andryeyev 35dee1ac53 SWDEV-193956 - [hipclang-vdi-rocm][perf]
~45% to 50% of Performance drop on rocBLAS_int8 test

Add support for active waits without blocking the host thread.

Change-Id: Ie7bb48dcafcb4c93d448bf74749b829b626c3578


[ROCm/clr commit: 0fc433e076]
2020-03-04 17:02:15 -05:00
Payam 123f91240d clean up
Change-Id: I1a5bbd12bba35af5d52f9ddc0df71dd0d004d122


[ROCm/clr commit: 9106a7dff4]
2020-03-04 13:35:49 -05:00
Jason Tang 841416fa38 Seperate PAL and ROCm
Change-Id: I7d0fbbab88c0541f17274da6e8850f2c6783dcd1


[ROCm/clr commit: f51ff32113]
2020-03-03 16:06:51 -05:00
Vladislav Sytchenko c64226cefe SWDEV-224335
cl_bool needed to be replaced with uint32_t instead of bool. This is due to cl_bool being a typedef of cl_uint32.

Currently clGetDeviceInfo() reports incorrect size for the return value, due to cl_bool being 4 bytes and c++ bool being 1 byte.

Change-Id: I647a4b8873627059865c84c8ca27694dbc0916de


[ROCm/clr commit: 243a3c2aa4]
2020-03-03 11:50:37 -05:00
German Andryeyev d4e8dd876b SWDEV-79445
Add MS HWS support. PAL reports just one compute engine
in that mode and runtime needs extra logic to detect RT queues.

Change-Id: I011f1f1b18dec6a7195a4f1fe939f8029bc269ae


[ROCm/clr commit: 622c714165]
2020-02-28 19:05:17 -05:00
Vladislav Sytchenko 2b134b6f30 Remove OpenCL Single Buffer Allocation Restriction
Change-Id: I5c37a7f08b02ed74ec6984c6da9ffa5dc9bf0f52


[ROCm/clr commit: 019d1feea5]
2020-02-25 11:41:18 -05:00
Payam e3786cc01c removed AMD referenced internal url
http://172.24.5.22:8888/palamida/InventoryDetails.htm?inventoryId=80447&projectId=1704

Change-Id: I917942cfddd165018904afda7a1ab76cdbc91595


[ROCm/clr commit: 0eea98b755]
2020-02-25 11:08:19 -05:00
jujiang 375649abc5 SWDEV-196333-hipCopyhammer_H2D&hipCopyHammer_D2H tests fix return false case
Change-Id: I919e098f8b1b8c41b200bd32dcf108977c472b43


[ROCm/clr commit: 518a75ca66]
2020-02-24 15:08:21 -05:00
German Andryeyev e132f2c4c1 SWDEV-221395 - [OpenCL] Failure to Create RTQ2
Don't add real time queues into the pool of generic queues.

Change-Id: I7f6865df740b8a2fbbec5e897a988a2151ef5a9e


[ROCm/clr commit: 0fb8e378b1]
2020-02-21 16:50:10 -05:00
Vladislav Sytchenko e716e4bc02 Correct pitch alignment calculation
When we're aligning rowPitch to imagePitchAlignment, rowPitch is in pixels,
but imagePitchAlignment_ is bytes, so we end up overaligning the pitch.

Convert imagePitchAlignment_ to pixels before doing any logic.

Change-Id: Ia5ab9d54bed150fe974e86b060dbadc196165b29


[ROCm/clr commit: 696d00e71b]
2020-02-20 18:00:27 -05:00