76333 Коммитов
Автор SHA1 Сообщение Дата
Vladislav Sytchenko 82a8810572 HIP-VDI texture rework
The current texture implementation is based off the one for HIP-HCC. There's a lot of problems with it - only creating images from buffers, hard coding logic and ignoring user parameters. This leads to a whole lot of UB even with simple examples (as seen with RedShift's code).

This CL is aimed to bring the HIP-VDI texture implementation closer to what is described by Cuda.

hipMemcpyAtoA() - image to image copy.
hipMemcpyHtoA()/hipMemcpyDtoA() - buffer to image copy.
hipMemcpyAtoH()/hipMemcpyAtoD() - image to buffer copy.

hipArrayCreate()/hipArray3DCreate()/hipMallocArray()/hipMalloc3DArray() - creates 1D/2D/3D/1D Array/2D Array images.
hipCreateTextureObject() - creates sampler, (optional) creates 1D/2D image from buffer, (optional) creates image views.
hipBindTexture() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipBindTexture2D() - creates 2D image form buffer.
hipBindTextureToArray() - creates image view.
hipTexRefSetAddress() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipTexRefSetAddress2D() - creates 2D image from buffer.
hipTexRefSetArray() - creates image view.

There are still a lot of  TODOs in the code, here's a few important ones:
1. VDI doesn't support a lot of sampler flags.
2. VDI doesn't support device to image 2D/3D copy.
3. Mipmaps implementation is incomplete.
4. Image view implementation is incomplete.

Change-Id: Ia374ee27aa14f76451fee7667495036f4419a487


[ROCm/hip commit: c22eb7808d]
2020-02-24 15:23:45 -05:00
Vladislav Sytchenko c22eb7808d HIP-VDI texture rework
The current texture implementation is based off the one for HIP-HCC. There's a lot of problems with it - only creating images from buffers, hard coding logic and ignoring user parameters. This leads to a whole lot of UB even with simple examples (as seen with RedShift's code).

This CL is aimed to bring the HIP-VDI texture implementation closer to what is described by Cuda.

hipMemcpyAtoA() - image to image copy.
hipMemcpyHtoA()/hipMemcpyDtoA() - buffer to image copy.
hipMemcpyAtoH()/hipMemcpyAtoD() - image to buffer copy.

hipArrayCreate()/hipArray3DCreate()/hipMallocArray()/hipMalloc3DArray() - creates 1D/2D/3D/1D Array/2D Array images.
hipCreateTextureObject() - creates sampler, (optional) creates 1D/2D image from buffer, (optional) creates image views.
hipBindTexture() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipBindTexture2D() - creates 2D image form buffer.
hipBindTextureToArray() - creates image view.
hipTexRefSetAddress() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipTexRefSetAddress2D() - creates 2D image from buffer.
hipTexRefSetArray() - creates image view.

There are still a lot of  TODOs in the code, here's a few important ones:
1. VDI doesn't support a lot of sampler flags.
2. VDI doesn't support device to image 2D/3D copy.
3. Mipmaps implementation is incomplete.
4. Image view implementation is incomplete.

Change-Id: Ia374ee27aa14f76451fee7667495036f4419a487
2020-02-24 15:23:45 -05:00
Payam 09ab0637c2 updated lib elf path and clean ups
Change-Id: Id0b3c295fa8353a5da8517204bf53dab9887defb


[ROCm/clr commit: 3beac02cbd]
2020-02-24 15:09:34 -05:00
Payam 3beac02cbd updated lib elf path and clean ups
Change-Id: Id0b3c295fa8353a5da8517204bf53dab9887defb
2020-02-24 15:09:34 -05:00
Payam d34a857799 updated lib elf path and clean ups
Change-Id: Id0b3c295fa8353a5da8517204bf53dab9887defb


[ROCm/hip commit: c6bb103dff]
2020-02-24 15:09:34 -05:00
Payam c6bb103dff updated lib elf path and clean ups
Change-Id: Id0b3c295fa8353a5da8517204bf53dab9887defb
2020-02-24 15:09:34 -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
jujiang 518a75ca66 SWDEV-196333-hipCopyhammer_H2D&hipCopyHammer_D2H tests fix return false case
Change-Id: I919e098f8b1b8c41b200bd32dcf108977c472b43
2020-02-24 15:08:21 -05:00
Payam 47b18ccf54 clean up
Change-Id: I6520e9b796675cd8879c1116e7739764056a2666


[ROCm/clr commit: e65dc6f8be]
2020-02-24 14:32:13 -05:00
Payam e65dc6f8be clean up
Change-Id: I6520e9b796675cd8879c1116e7739764056a2666
2020-02-24 14:32:13 -05:00
Payam Ghafari 696479d088 Merge "export hip::host and hip::device" into amd-master-next
[ROCm/clr commit: 9518af6083]
2020-02-24 13:29:01 -05:00
Payam Ghafari 9518af6083 Merge "export hip::host and hip::device" into amd-master-next 2020-02-24 13:29:01 -05:00
Payam Ghafari a4bdf0e0ae Merge "export hip::host and hip::device" into amd-master-next
[ROCm/hip commit: bec7cfbe3c]
2020-02-24 13:29:01 -05:00
Payam Ghafari bec7cfbe3c Merge "export hip::host and hip::device" into amd-master-next 2020-02-24 13:29:01 -05:00
Jatin Chaudhary 97937573d4 Generating hiprtc lib with hcc+hip-clang
Review comments - generate hiprtc lib everytime when HIP_PLATFORM is hcc

Changes for hip-clang

Removing pre processor directive to simplify

Change-Id: Id38ab368362b58ee0458baeb8051fea709ae6bba


[ROCm/clr commit: 8bf287ef18]
2020-02-24 11:44:17 -05:00
Jatin Chaudhary 8bf287ef18 Generating hiprtc lib with hcc+hip-clang
Review comments - generate hiprtc lib everytime when HIP_PLATFORM is hcc

Changes for hip-clang

Removing pre processor directive to simplify

Change-Id: Id38ab368362b58ee0458baeb8051fea709ae6bba
2020-02-24 11:44:17 -05:00
Jatin Chaudhary fa2cc448de Generating hiprtc lib with hcc+hip-clang
Review comments - generate hiprtc lib everytime when HIP_PLATFORM is hcc

Changes for hip-clang

Removing pre processor directive to simplify

Change-Id: Id38ab368362b58ee0458baeb8051fea709ae6bba


[ROCm/hip commit: 54447268cc]
2020-02-24 11:44:17 -05:00
Jatin Chaudhary 54447268cc Generating hiprtc lib with hcc+hip-clang
Review comments - generate hiprtc lib everytime when HIP_PLATFORM is hcc

Changes for hip-clang

Removing pre processor directive to simplify

Change-Id: Id38ab368362b58ee0458baeb8051fea709ae6bba
2020-02-24 11:44:17 -05:00
Sean Keely a1c2439213 Update asserts and comments for pointer info.
Checks for an IPC memory error and updates comments relevant
to rocr_visible_devices.

Change-Id: I9d2f2dd27f3fa04881d17387cce2692bc046edb2
2020-02-24 09:08:48 -05:00
Sean Keely 34d4ed2ac5 Update asserts and comments for pointer info.
Checks for an IPC memory error and updates comments relevant
to rocr_visible_devices.

Change-Id: I9d2f2dd27f3fa04881d17387cce2692bc046edb2


[ROCm/ROCR-Runtime commit: a1c2439213]
2020-02-24 09:08:48 -05:00
Sean Keely 9c35780836 Report HDP registers at all times.
HDP will now be used for coarse grain kernarg so needs to be
reported without consideration of fine grain vram over pcie.

Change-Id: I648167299faa583876a3d8685c3b3c4d8d31ebf9
2020-02-24 09:08:17 -05:00
Sean Keely 9e62ba8b96 Report HDP registers at all times.
HDP will now be used for coarse grain kernarg so needs to be
reported without consideration of fine grain vram over pcie.

Change-Id: I648167299faa583876a3d8685c3b3c4d8d31ebf9


[ROCm/ROCR-Runtime commit: 9c35780836]
2020-02-24 09:08:17 -05:00
Chris Freehill 95d3da04b9 Add rsmi_compute_process_gpus_get()
Given a process ID, give the device indices that process is
currently using.

Also:
* made corrections to how RSMI, amdgpu (ie, "card#") and
  KFD indicies translate from one another
* add a few missing error codes to rsmi_status_string()
* fix some formatting

Change-Id: Icd2cae66bb4fec768da96af7cf9cf8b8b66ec7f9


[ROCm/rocm_smi_lib commit: 2d6e15190c]
2020-02-22 10:47:58 -06:00
Chris Freehill 2d6e15190c Add rsmi_compute_process_gpus_get()
Given a process ID, give the device indices that process is
currently using.

Also:
* made corrections to how RSMI, amdgpu (ie, "card#") and
  KFD indicies translate from one another
* add a few missing error codes to rsmi_status_string()
* fix some formatting

Change-Id: Icd2cae66bb4fec768da96af7cf9cf8b8b66ec7f9
2020-02-22 10:47:58 -06:00
Chris Freehill abd01b37eb Add rsmi_compute_process_gpus_get()
Given a process ID, give the device indices that process is
currently using.

Also:
* made corrections to how RSMI, amdgpu (ie, "card#") and
  KFD indicies translate from one another
* add a few missing error codes to rsmi_status_string()
* fix some formatting

Change-Id: Icd2cae66bb4fec768da96af7cf9cf8b8b66ec7f9


[ROCm/amdsmi commit: 2d6e15190c]
2020-02-22 10:47:58 -06:00
Ramesh Errabolu 627991b1c1 Update how code references publicly available ROCr headers
Change-Id: I357c51eb713a23704d4fee71081be46a73a71806
2020-02-21 20:01:11 -05:00
Ramesh Errabolu 38747b8fec Update how code references publicly available ROCr headers
Change-Id: I357c51eb713a23704d4fee71081be46a73a71806


[ROCm/ROCR-Runtime commit: 627991b1c1]
2020-02-21 20:01:11 -05:00
Payam d171c9c2d1 export hip::host and hip::device
Change-Id: If1427a180f91d3f8bae203d956f21cd69345c060


[ROCm/clr commit: e5c8903925]
2020-02-21 19:58:42 -05:00
Payam e5c8903925 export hip::host and hip::device
Change-Id: If1427a180f91d3f8bae203d956f21cd69345c060
2020-02-21 19:58:42 -05:00
Payam 689803efe8 export hip::host and hip::device
Change-Id: If1427a180f91d3f8bae203d956f21cd69345c060


[ROCm/hip commit: 4c54fd20d8]
2020-02-21 19:58:42 -05:00
Payam 4c54fd20d8 export hip::host and hip::device
Change-Id: If1427a180f91d3f8bae203d956f21cd69345c060
2020-02-21 19:58:42 -05:00
Vladislav Sytchenko f8eed3159b Update hipGetErroName() to match hipError_t
Change-Id: I8f7fe0cca01ddec5d6333ba6e876128276323be9


[ROCm/clr commit: 16ffc6fe3e]
2020-02-21 18:31:27 -05:00
Vladislav Sytchenko 16ffc6fe3e Update hipGetErroName() to match hipError_t
Change-Id: I8f7fe0cca01ddec5d6333ba6e876128276323be9
2020-02-21 18:31:27 -05:00
Vladislav Sytchenko 58ad82f19c Update hipGetErroName() to match hipError_t
Change-Id: I8f7fe0cca01ddec5d6333ba6e876128276323be9


[ROCm/hip commit: b162be8d28]
2020-02-21 18:31:27 -05:00
Vladislav Sytchenko b162be8d28 Update hipGetErroName() to match hipError_t
Change-Id: I8f7fe0cca01ddec5d6333ba6e876128276323be9
2020-02-21 18:31:27 -05:00
Sean Keely dc165c92bc Add env key HSA_NO_SCRATCH_THREAD_LIMITER.
Setting to 1 prevents the scratch handler from reducing peak occupancy.
Scratch allocations that would normally reduce peak occupancy will
instead fail.

Diagnostic for TF and PyTorch.

Change-Id: I2d7ea47077eb5cf708251c8aa3fd183ad4261be0
2020-02-21 17:09:26 -05:00
Sean Keely 302c21ac31 Add env key HSA_NO_SCRATCH_THREAD_LIMITER.
Setting to 1 prevents the scratch handler from reducing peak occupancy.
Scratch allocations that would normally reduce peak occupancy will
instead fail.

Diagnostic for TF and PyTorch.

Change-Id: I2d7ea47077eb5cf708251c8aa3fd183ad4261be0


[ROCm/ROCR-Runtime commit: dc165c92bc]
2020-02-21 17:09:26 -05:00
Sean Keely 6c556002d8 Correct scratch retry logic.
scratch_used_large_ was uninitialized leading to the observed hang.
DynamicScratchHandler would wait for a large scratch release despite no
large scratch having yet been allocated.  Fixes .

The patch also removes a potential race between AddScratchNotifier and
ReleaseQueueScratch.  The race condition does not exist today since both
scratch alloc and release run on the same thread.  The changes will
prevent this potential race from manifesting if the async event handler
is ever updated to use multiple threads.

Also enhances scratch occupancy reduction reporting.  Reporting now
prints the initial request size as well as the allocated size and the
effect on occupancy this has.  Occupancy is computed in terms of the
requesting dispatch grid size so may be >100%.

Change-Id: I0fc5ee01467ff4c29bdd25d545177c97862c3bd9
2020-02-21 17:09:26 -05:00
Sean Keely b6b3140ae7 Correct scratch retry logic.
scratch_used_large_ was uninitialized leading to the observed hang.
DynamicScratchHandler would wait for a large scratch release despite no
large scratch having yet been allocated.  Fixes .

The patch also removes a potential race between AddScratchNotifier and
ReleaseQueueScratch.  The race condition does not exist today since both
scratch alloc and release run on the same thread.  The changes will
prevent this potential race from manifesting if the async event handler
is ever updated to use multiple threads.

Also enhances scratch occupancy reduction reporting.  Reporting now
prints the initial request size as well as the allocated size and the
effect on occupancy this has.  Occupancy is computed in terms of the
requesting dispatch grid size so may be >100%.

Change-Id: I0fc5ee01467ff4c29bdd25d545177c97862c3bd9


[ROCm/ROCR-Runtime commit: 6c556002d8]
2020-02-21 17:09:26 -05:00
Sean Keely d53fe07687 Insert zero sized pool on CPU agents without attached memory.
Ensures that all CPU agents will have a pool handle to allocate
system memory.  These pools will have no numa binding since the
node their owning Agent represents has no installed memory.

Change-Id: I9f72b455d633646839753c6719ff7f6a4c41f7c4
2020-02-21 17:05:10 -05:00
Sean Keely b21dcb7913 Insert zero sized pool on CPU agents without attached memory.
Ensures that all CPU agents will have a pool handle to allocate
system memory.  These pools will have no numa binding since the
node their owning Agent represents has no installed memory.

Change-Id: I9f72b455d633646839753c6719ff7f6a4c41f7c4


[ROCm/ROCR-Runtime commit: d53fe07687]
2020-02-21 17:05:10 -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
German Andryeyev 0fb8e378b1 SWDEV-221395 - [OpenCL] Failure to Create RTQ2
Don't add real time queues into the pool of generic queues.

Change-Id: I7f6865df740b8a2fbbec5e897a988a2151ef5a9e
2020-02-21 16:50:10 -05:00
German Andryeyev ebc40e115c SWDEV-193956 - [hipclang-vdi-rocm][perf]
Retain command before a wait.

Change-Id: I0ab8f1352af32c96567dad9e31b3687bdf407bf6


[ROCm/clr commit: 77ff161324]
2020-02-21 16:43:21 -05:00
German Andryeyev 77ff161324 SWDEV-193956 - [hipclang-vdi-rocm][perf]
Retain command before a wait.

Change-Id: I0ab8f1352af32c96567dad9e31b3687bdf407bf6
2020-02-21 16:43:21 -05:00
Chauncey Hui d205c0bc8c SWDEV-2 - Change OpenCL version number from 3087 to 3099
[ROCm/clr commit: ec84e8d6e2]
2020-02-21 15:31:26 -05:00
Chauncey Hui ec84e8d6e2 SWDEV-2 - Change OpenCL version number from 3087 to 3099 2020-02-21 15:31:26 -05:00
German Andryeyev 039621e7b9 SWDEV-193956 - [hipclang-vdi-rocm][perf]
~45% to 50% of Performance drop on rocBLAS_int8 test

Use the last command in the queue for a wait.
Add extra print information about processed commands.
Add an option to disable file location printing.

Change-Id: I4187883e1a90e571fde3128af98368108fda8785


[ROCm/clr commit: a66d09f5a3]
2020-02-21 15:21:15 -05:00
German Andryeyev a66d09f5a3 SWDEV-193956 - [hipclang-vdi-rocm][perf]
~45% to 50% of Performance drop on rocBLAS_int8 test

Use the last command in the queue for a wait.
Add extra print information about processed commands.
Add an option to disable file location printing.

Change-Id: I4187883e1a90e571fde3128af98368108fda8785
2020-02-21 15:21:15 -05:00
Vladislav Sytchenko d356f64e60 Fix Windows build
MSVC unlike gcc doesn't add colons for you.

Change-Id: I06d81a9a9b346065d0452fe7117ab82144a06f74


[ROCm/clr commit: d934d731a0]
2020-02-21 14:37:41 -05:00