1. CMake will create .hip-config file in bin directory
Future Work: Need to make changes to hipcc to read the file
Change-Id: Ia7dc48d43787921d5af4ab07d7a5befbcf904465
Due to a misinterpretation of the HSA specification the microcode has,
until now, been responsible for ensuring a coherent view of the
amd_kernel_code_t object when acquire_fence_scope is set to agent or system.
To correct this the runtime must instead assume this responsibility.
Introduce GpuAgentInt::InvalidateCodeCaches to perform this operation
on-demand. Invoke this after code object allocation. Extend the Queue
implementations to support PM4 command submission, through which the
PM4 command ACQUIRE_MEM can be submitted to perform cache invalidation.
Submit through a runtime-managed queue shared with the blit implementation.
This change depends on microcode support and this is checked against the
running version. Older microcode builds will perform cache invalidation
themselves, so it is acceptable for this change to do nothing in that case.
Change-Id: I268dd2b83af3decdd9ad07430a81df8a2ecb6bd2
Due to a misinterpretation of the HSA specification the microcode has,
until now, been responsible for ensuring a coherent view of the
amd_kernel_code_t object when acquire_fence_scope is set to agent or system.
To correct this the runtime must instead assume this responsibility.
Introduce GpuAgentInt::InvalidateCodeCaches to perform this operation
on-demand. Invoke this after code object allocation. Extend the Queue
implementations to support PM4 command submission, through which the
PM4 command ACQUIRE_MEM can be submitted to perform cache invalidation.
Submit through a runtime-managed queue shared with the blit implementation.
This change depends on microcode support and this is checked against the
running version. Older microcode builds will perform cache invalidation
themselves, so it is acceptable for this change to do nothing in that case.
Change-Id: I268dd2b83af3decdd9ad07430a81df8a2ecb6bd2
[ROCm/ROCR-Runtime commit: f76577ae43]
SWDEV-2 - Change OpenCL version number from 2183 to 2184.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1930 edit
[ROCm/clr commit: 2c09adc799]
SWDEV-2 - Change OpenCL version number from 2183 to 2184.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1930 edit
SWDEV-2 - Change OpenCL version number from 2182 to 2183.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1929 edit
[ROCm/clr commit: 0398b45b3d]
SWDEV-2 - Change OpenCL version number from 2182 to 2183.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1929 edit
The default optimization level may interfere with debugging.
Change-Id: Ie694ef35b05e4cf2bf4f68bc346e8d60a2d27bc8
[ROCm/ROCR-Runtime commit: d2a4629c55]
SWDEV-2 - Change OpenCL version number from 2181 to 2182.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1928 edit
[ROCm/clr commit: 9696e52d9b]
SWDEV-2 - Change OpenCL version number from 2181 to 2182.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1928 edit
This option was disabled by default to address issues writing to stderr
in Windows applications. The lack of an error message for memory access
faults is confusing to users, however.
Enable the error message by default on Linux only.
Change-Id: I1f44ba42362f8874abdc7c8e63ddd54a855b5394
This option was disabled by default to address issues writing to stderr
in Windows applications. The lack of an error message for memory access
faults is confusing to users, however.
Enable the error message by default on Linux only.
Change-Id: I1f44ba42362f8874abdc7c8e63ddd54a855b5394
[ROCm/ROCR-Runtime commit: acc5f15e4c]
SWDEV-2 - Change OpenCL version number from 2180 to 2181.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1927 edit
[ROCm/clr commit: ec283fb22c]
SWDEV-2 - Change OpenCL version number from 2180 to 2181.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1927 edit
The runtime needs a queue on which to submit cache management commands.
Device-to-device blit copy already creates a queue unconditionally.
We can share this queue for both purposes.
This change restructures the BlitKernel interface to accept, rather than
create, a queue. GpuAgent creates queues as needed for both cache
management and blit compute.
Fix queue full detection in AcquireWriteIndex (<= vs <).
Change-Id: I61d0c6b9d04f2dba74872f0676ad791435778ba4
The runtime needs a queue on which to submit cache management commands.
Device-to-device blit copy already creates a queue unconditionally.
We can share this queue for both purposes.
This change restructures the BlitKernel interface to accept, rather than
create, a queue. GpuAgent creates queues as needed for both cache
management and blit compute.
Fix queue full detection in AcquireWriteIndex (<= vs <).
Change-Id: I61d0c6b9d04f2dba74872f0676ad791435778ba4
[ROCm/ROCR-Runtime commit: f7ab361347]
SWDEV-2 - Change OpenCL version number from 2179 to 2180.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1926 edit
[ROCm/clr commit: 3be634a417]
SWDEV-2 - Change OpenCL version number from 2179 to 2180.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1926 edit
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals
Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91
[ROCm/clr commit: 9c7ee12822]
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals
Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals
Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91
[ROCm/hip commit: 9062ebcf3a]
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals
Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91
SWDEV-99203 - [CGG] OpenCL Samplers object ref count mechanism doesn't work correctly when 2 different samplers are set as argument of the same kernel
- Revert the change from CL#590388. We have to release the sampler in the captured memory. CPU device has different logic now and doesn't alternate captured memory anymore.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.cpp#22 edit
[ROCm/clr commit: fa73da1714]
SWDEV-99203 - [CGG] OpenCL Samplers object ref count mechanism doesn't work correctly when 2 different samplers are set as argument of the same kernel
- Revert the change from CL#590388. We have to release the sampler in the captured memory. CPU device has different logic now and doesn't alternate captured memory anymore.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.cpp#22 edit
SWDEV-2 - Change OpenCL version number from 2178 to 2179.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1925 edit
[ROCm/clr commit: 4bef3bbb4a]
SWDEV-2 - Change OpenCL version number from 2178 to 2179.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1925 edit
Remove dead depFutures, enqueueBarrier call.
Rename some parms to reflect usage.
Add comments to better explain tricky parts of sync code.
Change-Id: I763296421d9c2b3b58fc8cef5f010b12ab49553c
[ROCm/clr commit: ef61aae878]
Remove dead depFutures, enqueueBarrier call.
Rename some parms to reflect usage.
Add comments to better explain tricky parts of sync code.
Change-Id: I763296421d9c2b3b58fc8cef5f010b12ab49553c
Remove dead depFutures, enqueueBarrier call.
Rename some parms to reflect usage.
Add comments to better explain tricky parts of sync code.
Change-Id: I763296421d9c2b3b58fc8cef5f010b12ab49553c
[ROCm/hip commit: 02dd7a7399]
Remove dead depFutures, enqueueBarrier call.
Rename some parms to reflect usage.
Add comments to better explain tricky parts of sync code.
Change-Id: I763296421d9c2b3b58fc8cef5f010b12ab49553c
get_block_properties uses the complete DID to identify the GPU. This list
is getting too long when more devices are added. Reading the 12 most
significant digits is good enough to identify the GPU.
Change-Id: Ieebb05402bbe08af12eb7289dfeb5bbf1f515b0f
get_block_properties uses the complete DID to identify the GPU. This list
is getting too long when more devices are added. Reading the 12 most
significant digits is good enough to identify the GPU.
Change-Id: Ieebb05402bbe08af12eb7289dfeb5bbf1f515b0f
[ROCm/ROCR-Runtime commit: 6c4d19a9d2]