- hiprtcCompileProgram should create isa with temp name when
program name is not provided along with --save-temps option
Change-Id: I47974e2ac56336c851531622ff7d2a3ffb53455e
[ROCm/clr commit: 958b97b433]
- hiprtcCompileProgram should create isa with temp name when
program name is not provided along with --save-temps option
Change-Id: I47974e2ac56336c851531622ff7d2a3ffb53455e
* RPATH to rocprofiler_LIBRARY_DIR for ROCm < v5.2
- until v5.2 only librocprofiler64.so was symlinked in /opt/rocm. Thus linker using SOVERSION caused issues finding librocprofiler64.so.1
* Test ROCm w/ CMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
* INSTALL_RPATH_USE_LINK_PATH for omnitrace exe
[ROCm/rocprofiler-systems commit: b79ce10fee]
* RPATH to rocprofiler_LIBRARY_DIR for ROCm < v5.2
- until v5.2 only librocprofiler64.so was symlinked in /opt/rocm. Thus linker using SOVERSION caused issues finding librocprofiler64.so.1
* Test ROCm w/ CMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
* INSTALL_RPATH_USE_LINK_PATH for omnitrace exe
GPUs excluded by RVD are not expected to have scratch, memory, trap
handling nor memory regions set up. Now that these GPUs are added to
a new list, early return on agent destruction to prevent bad function
calls on destroy.
Also fix up broken memory releases between the gpu lists and ugly braces.
Change-Id: I52fc6e86ceba0a0383cedc63310eb409515eaf9f
GPUs excluded by RVD are not expected to have scratch, memory, trap
handling nor memory regions set up. Now that these GPUs are added to
a new list, early return on agent destruction to prevent bad function
calls on destroy.
Also fix up broken memory releases between the gpu lists and ugly braces.
Change-Id: I52fc6e86ceba0a0383cedc63310eb409515eaf9f
[ROCm/ROCR-Runtime commit: 9d2fe1ac2a]
This didn't return anything, so add a "return 0" at the end, since the
function expects to return an int value
Change-Id: I17c398e431b2ce4571e6ca4abe6d567f110ea2a7
This didn't return anything, so add a "return 0" at the end, since the
function expects to return an int value
Change-Id: I17c398e431b2ce4571e6ca4abe6d567f110ea2a7
[ROCm/ROCR-Runtime commit: 90ada94141]
- Don't pass uint32_t arguments by reference.
- Use nullptr instead of NULL.
- Don't add frivolous typedefs.
- Use correct types when available instead of generic integral types.
- Make all roctracer callbacks extern "C" to prepare for a future change
that will be removing their declaration from hip_runtime_api.h.
- Rename cb/sem sync and release functions -> reader_lock/writer_lock
acquire and release.
Change-Id: If203fee077d421a9782fcd34607a413b8c3dcfc8
[ROCm/clr commit: 9f09ca929e]
- Don't pass uint32_t arguments by reference.
- Use nullptr instead of NULL.
- Don't add frivolous typedefs.
- Use correct types when available instead of generic integral types.
- Make all roctracer callbacks extern "C" to prepare for a future change
that will be removing their declaration from hip_runtime_api.h.
- Rename cb/sem sync and release functions -> reader_lock/writer_lock
acquire and release.
Change-Id: If203fee077d421a9782fcd34607a413b8c3dcfc8
When acquiring the reader's lock (sem_sync()...sem_release()), it is
possible for a writer to squeeze by if the reader goes into sync_wait().
The writer could re-acquire the entry.sync between entry.sem > 0 and
entry.sync = 0.
void sync_wait(uint32_t id) {
sem_decrement(id);
while (entry(id).sync.load()) {}
// <--- HERE
sem_increment(id);
}
This could result in both the reader and the writer accessing
{ callback, arg } at the same time, and the reader could read
inconsistent data, for example: { new callback, old arg }.
The solution is to re-test entry.sync when returning from sync_wait():
void sem_sync(uint32_t id) {
sem_increment(id);
- if (entry(id).sync.load() == true) sync_wait(id);
+ while (entry(id).sync.load() == true) sync_wait(id);
}
Change-Id: I22f74f4cb9a5f027aac8aa4ed3e633acc19df4b8
[ROCm/clr commit: 6f78083f2a]
When acquiring the reader's lock (sem_sync()...sem_release()), it is
possible for a writer to squeeze by if the reader goes into sync_wait().
The writer could re-acquire the entry.sync between entry.sem > 0 and
entry.sync = 0.
void sync_wait(uint32_t id) {
sem_decrement(id);
while (entry(id).sync.load()) {}
// <--- HERE
sem_increment(id);
}
This could result in both the reader and the writer accessing
{ callback, arg } at the same time, and the reader could read
inconsistent data, for example: { new callback, old arg }.
The solution is to re-test entry.sync when returning from sync_wait():
void sem_sync(uint32_t id) {
sem_increment(id);
- if (entry(id).sync.load() == true) sync_wait(id);
+ while (entry(id).sync.load() == true) sync_wait(id);
}
Change-Id: I22f74f4cb9a5f027aac8aa4ed3e633acc19df4b8
1) catch-amd package name to hip-catch-amd
2) Install to /opt/rocm/test/hip instead of $ROCM_PATH/test/hip
Change-Id: Ie466e52a609c516aa14b7fced7552f7fbd66bc3a
[ROCm/hip-tests commit: 88ae7c18f7]
1) catch-amd package name to hip-catch-amd
2) Install to /opt/rocm/test/hip instead of $ROCM_PATH/test/hip
Change-Id: Ie466e52a609c516aa14b7fced7552f7fbd66bc3a
1) catch-amd package name to hip-catch-amd
2) Install to /opt/rocm/test/hip instead of $ROCM_PATH/test/hip
Change-Id: Ie466e52a609c516aa14b7fced7552f7fbd66bc3a
[ROCm/hip commit: 2d90452c96]
1) catch-amd package name to hip-catch-amd
2) Install to /opt/rocm/test/hip instead of $ROCM_PATH/test/hip
Change-Id: Ie466e52a609c516aa14b7fced7552f7fbd66bc3a
This test verifies that callback argument matches the callback function
as a race condition while setting and reading the pair could result in
mismatched arguments.
Change-Id: I2fe49d98d19bb780b6956ea6718762cfa0de93f8
[ROCm/roctracer commit: 602c67ee00]
This test verifies that callback argument matches the callback function
as a race condition while setting and reading the pair could result in
mismatched arguments.
Change-Id: I2fe49d98d19bb780b6956ea6718762cfa0de93f8
: The kernel driver will do align VRAM allocations to 2MB, instead of 4KB.
Change-Id: Iea9d8c0f02999b9ea5fd931da82240a33f7bcc69
[ROCm/ROCR-Runtime commit: 17fb40f1f6]