SWDEV-483130: Replace calls to deprecated functions hipHostMalloc/hipHostFree (#1070)

* SWDEV-483130: Replace calls to deprecated functions hipHostMalloc/hipHostFree

* SWDEV-483130: Replace calls to deprecated functions hipHostMalloc/hipHostFree. Moved definitions from lib/commons/defines.hpp to samples/common/defines.hpp and tests/common/defines.hpp

* Updated comment for clarity

* Update tests/rocprofv3/aborted-app/validate.py

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Formatting

* Formatting

* Updated CHANGELOG

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
itrowbri
2024-09-12 18:31:00 -05:00
committed by GitHub
parent efbe4ea0a2
commit 8d7be2e4b4
16 changed files with 63 additions and 26 deletions
+1
View File
@@ -101,6 +101,7 @@ Full documentation for ROCprofiler-SDK is available at [Click Here](source/docs/
### Changes
- Support `--marker-trace` on application linked against old (roctracer) ROCTx (i.e. `libroctx64.so`)
- Replaced deprecated hipHostMalloc and hipHostFree functions with hipExtHostAlloc and hipFreeHost in when ROCm version is greater than or equal to 6.3
### Fixes
+3 -2
View File
@@ -40,8 +40,9 @@ find_package(Threads REQUIRED)
add_executable(buffered-api-tracing)
target_sources(buffered-api-tracing PRIVATE main.cpp)
target_link_libraries(
buffered-api-tracing PRIVATE buffered-api-tracing-client Threads::Threads
rocprofiler-sdk::samples-build-flags)
buffered-api-tracing
PRIVATE buffered-api-tracing-client Threads::Threads
rocprofiler-sdk::samples-build-flags rocprofiler-sdk::samples-common-library)
rocprofiler_samples_get_preload_env(PRELOAD_ENV buffered-api-tracing-client)
rocprofiler_samples_get_ld_library_path_env(LIBRARY_PATH_ENV)
+2 -1
View File
@@ -22,6 +22,7 @@
#include "client.hpp"
#include "common/defines.hpp"
#include "hip/hip_runtime.h"
#include <chrono>
@@ -315,7 +316,7 @@ run_scratch(int rank, int tid, hipStream_t stream, int, char** argv)
const auto* exe_name = ::basename(argv[0]);
uint64_t* data_ptr = nullptr;
HIP_API_CALL(hipHostMalloc(&data_ptr, sizeof(uint64_t), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&data_ptr, sizeof(uint64_t), 0));
*data_ptr = 0;
test_kern_small<<<1000, 1, 0, stream>>>(data_ptr);
+8
View File
@@ -68,3 +68,11 @@
throw std::runtime_error(errmsg.str()); \
} \
}
#if HIP_VERSION >= 60300000
# define HIP_HOST_ALLOC_FUNC hipExtHostAlloc
# define HIP_HOST_FREE_FUNC hipFreeHost
#else
# define HIP_HOST_ALLOC_FUNC hipHostMalloc
# define HIP_HOST_FREE_FUNC hipHostFree
#endif
@@ -42,7 +42,7 @@ target_sources(external-correlation-id-request PRIVATE main.cpp)
target_link_libraries(
external-correlation-id-request
PRIVATE external-correlation-id-request-client Threads::Threads
rocprofiler-sdk::samples-build-flags)
rocprofiler-sdk::samples-build-flags rocprofiler-sdk::samples-common-library)
rocprofiler_samples_get_preload_env(PRELOAD_ENV external-correlation-id-request-client)
rocprofiler_samples_get_ld_library_path_env(LIBRARY_PATH_ENV)
@@ -20,6 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#include "common/defines.hpp"
#include "hip/hip_runtime.h"
#include <chrono>
@@ -304,7 +305,7 @@ run_scratch(int rank, int tid, hipStream_t stream, int, char** argv)
const auto* exe_name = ::basename(argv[0]);
uint64_t* data_ptr = nullptr;
HIP_API_CALL(hipHostMalloc(&data_ptr, sizeof(uint64_t), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&data_ptr, sizeof(uint64_t), 0));
*data_ptr = 0;
test_kern_small<<<1000, 1, 0, stream>>>(data_ptr);
+4 -2
View File
@@ -39,8 +39,10 @@ find_package(Threads REQUIRED)
add_executable(pc-sampling)
target_sources(pc-sampling PRIVATE main.cpp)
target_link_libraries(pc-sampling PRIVATE pc-sampling-client Threads::Threads
rocprofiler-sdk::samples-build-flags)
target_link_libraries(
pc-sampling
PRIVATE pc-sampling-client Threads::Threads rocprofiler-sdk::samples-build-flags
rocprofiler-sdk::samples-common-library)
rocprofiler_samples_get_preload_env(PRELOAD_ENV pc-sampling-client)
rocprofiler_samples_get_ld_library_path_env(LIBRARY_PATH_ENV)
+2 -1
View File
@@ -20,6 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#include "common/defines.hpp"
#include "hip/hip_runtime.h"
#include <chrono>
@@ -304,7 +305,7 @@ run_scratch(int rank, int tid, hipStream_t stream, int, char** argv)
const auto* exe_name = ::basename(argv[0]);
uint64_t* data_ptr = nullptr;
HIP_API_CALL(hipHostMalloc(&data_ptr, sizeof(uint64_t), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&data_ptr, sizeof(uint64_t), 0));
*data_ptr = 0;
test_kern_small<<<1000, 1, 0, stream>>>(data_ptr);
+2 -1
View File
@@ -39,4 +39,5 @@ target_compile_options(scratch-memory PRIVATE -W -Wall -Wextra -Wpedantic -Wshad
-Werror)
find_package(Threads REQUIRED)
target_link_libraries(scratch-memory PRIVATE Threads::Threads hsa-runtime64)
target_link_libraries(scratch-memory PRIVATE Threads::Threads hsa-runtime64
rocprofiler-sdk::tests-common-library)
+3 -1
View File
@@ -27,6 +27,8 @@
#include <iostream>
#include <vector>
#include "common/defines.hpp"
#define hipCheckErr(errval) \
do \
{ \
@@ -166,7 +168,7 @@ int
test_scratch()
{
uint64_t* data_ptr;
hipCheckErr(hipHostMalloc(&data_ptr, sizeof(uint64_t), 0));
hipCheckErr(HIP_HOST_ALLOC_FUNC(&data_ptr, sizeof(uint64_t), 0));
std::vector<float> host_floats(1024);
float* dev;
+2 -1
View File
@@ -38,4 +38,5 @@ target_sources(vector-ops PRIVATE vector-ops.cpp)
target_compile_options(vector-ops PRIVATE -W -Wall -Wextra -Wpedantic -Wshadow -Werror)
find_package(Threads REQUIRED)
target_link_libraries(vector-ops PRIVATE Threads::Threads)
target_link_libraries(vector-ops PRIVATE Threads::Threads
rocprofiler-sdk::tests-common-library)
+8 -6
View File
@@ -31,6 +31,8 @@
#include <mutex>
#include <vector>
#include "common/defines.hpp"
#define HIP_API_CALL(CALL) \
{ \
hipError_t error_ = (CALL); \
@@ -167,9 +169,9 @@ run(int NUM_QUEUE, int DEVICE_ID)
{
HIP_API_CALL(hipStreamCreateWithFlags(&streams[q], hipStreamNonBlocking));
HIP_API_CALL(hipHostMalloc(&hostA[q], NUM * sizeof(float), 0));
HIP_API_CALL(hipHostMalloc(&hostB[q], NUM * sizeof(float), 0));
HIP_API_CALL(hipHostMalloc(&hostC[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostA[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostB[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostC[q], NUM * sizeof(float), 0));
// initialize the input data
for(int i = 0; i < NUM; i++)
@@ -264,9 +266,9 @@ run(int NUM_QUEUE, int DEVICE_ID)
HIP_API_CALL(hipFree(deviceB[q]));
HIP_API_CALL(hipFree(deviceC[q]));
HIP_API_CALL(hipHostFree(hostA[q]));
HIP_API_CALL(hipHostFree(hostB[q]));
HIP_API_CALL(hipHostFree(hostC[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostA[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostB[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostC[q]));
HIP_API_CALL(hipStreamDestroy(streams[q]));
}
+8
View File
@@ -38,3 +38,11 @@
throw std::runtime_error(errmsg.str()); \
} \
}
#if HIP_VERSION >= 60300000
# define HIP_HOST_ALLOC_FUNC hipExtHostAlloc
# define HIP_HOST_FREE_FUNC hipFreeHost
#else
# define HIP_HOST_ALLOC_FUNC hipHostMalloc
# define HIP_HOST_FREE_FUNC hipHostFree
#endif
+2 -1
View File
@@ -41,4 +41,5 @@ target_include_directories(vector-ops-shared-library PUBLIC ${CMAKE_CURRENT_SOUR
set_target_properties(vector-ops-shared-library PROPERTIES OUTPUT_NAME vector-ops)
find_package(Threads REQUIRED)
target_link_libraries(vector-ops-shared-library PRIVATE Threads::Threads)
target_link_libraries(vector-ops-shared-library
PRIVATE Threads::Threads rocprofiler-sdk::tests-common-library)
+8 -6
View File
@@ -30,6 +30,8 @@
#include <mutex>
#include <vector>
#include "common/defines.hpp"
#define HIP_API_CALL(CALL) \
{ \
hipError_t error_ = (CALL); \
@@ -170,9 +172,9 @@ run_vector_ops_impl(int num_queue, int device_id)
{
HIP_API_CALL(hipStreamCreateWithFlags(&streams[q], hipStreamNonBlocking));
HIP_API_CALL(hipHostMalloc(&hostA[q], NUM * sizeof(float), 0));
HIP_API_CALL(hipHostMalloc(&hostB[q], NUM * sizeof(float), 0));
HIP_API_CALL(hipHostMalloc(&hostC[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostA[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostB[q], NUM * sizeof(float), 0));
HIP_API_CALL(HIP_HOST_ALLOC_FUNC(&hostC[q], NUM * sizeof(float), 0));
// initialize the input data
for(int i = 0; i < NUM; i++)
@@ -253,9 +255,9 @@ run_vector_ops_impl(int num_queue, int device_id)
HIP_API_CALL(hipFree(deviceB[q]));
HIP_API_CALL(hipFree(deviceC[q]));
HIP_API_CALL(hipHostFree(hostA[q]));
HIP_API_CALL(hipHostFree(hostB[q]));
HIP_API_CALL(hipHostFree(hostC[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostA[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostB[q]));
HIP_API_CALL(HIP_HOST_FREE_FUNC(hostC[q]));
HIP_API_CALL(hipStreamDestroy(streams[q]));
}
+7 -2
View File
@@ -99,8 +99,13 @@ def test_hip_api_trace_json(json_data):
"hipGetLastError",
]
)
assert functions == expected_functions
# TODO: When tracing support is added for hipExtHostAlloc, replace
# hipHostMalloc with hipExtHostAlloc instead of removing hipHostMalloc
# as is happening currently
updated_expected_functions = [
func for func in expected_functions if func != "hipHostMalloc"
]
assert functions == expected_functions or functions == updated_expected_functions
if __name__ == "__main__":