Support different HSA table sizes (#44)
* Support different HSA table sizes
- Use hsa-runtime64_VERSION to define pp defs for major and minor version in version.h.in
- Update version.h.in to define ROCPROFILER_HSA_RUNTIME_VERSION_{MAJOR,MINOR}
- Use HSA_AMD_INTERFACE_VERSION_{MAJOR,MINOR} to handle hsa_amd_vmem_* support
- add template specializations for hsa_amd_vmem_* functions
- implement HSA version based static asserts
* Debug commit
- print pp value for ROCPROFILER_HSA_RUNTIME_VERSION and ROCPROFILER_HSA_RUNTIME_EXT_AMD_VERSION
* Debug commit
- fix ROCPROFILER_HSA_RUNTIME_VERSION value
* Remove debug edits
* Update lib/rocprofiler/hsa/utils.hpp
- support outputting:
- hsa_amd_memory_pool_t
- hsa_amd_vmem_alloc_handle_t
- hsa_amd_memory_access_desc_t
- hsa_amd_memory_pool_t
* Update lib/rocprofiler/hsa/utils.hpp
- tweak to join_impl
* Update lib/rocprofiler/hsa/utils.hpp
- use formatting when possible
* Update lib/rocprofiler/hsa/types.hpp
- Support API_TABLE_MAJOR_VERSIONS > 1
* Update lib/rocprofiler/hsa/types.hpp
- remove inherit from undefined template specialization
* Update lib/rocprofiler/hsa/utils.hpp
- remove duplicate formatter specialization
* Update include/rocprofiler/hsa/api_args.h
- remove const from non-pointer anonymous structs in union
* Use HSA_AMD_EXT_API_TABLE_MAJOR_VERSION
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
729c34fb60
Коммит
c0cb907fee
@@ -24,6 +24,7 @@
|
||||
#include <hsa/hsa_api_trace.h>
|
||||
#include <hsa/hsa_ext_amd.h>
|
||||
#include <hsa/hsa_ext_image.h>
|
||||
#include <rocprofiler/version.h>
|
||||
|
||||
typedef union rocprofiler_hsa_api_args_u
|
||||
{
|
||||
@@ -1221,4 +1222,78 @@ typedef union rocprofiler_hsa_api_args_u
|
||||
size_t image_data_slice_pitch;
|
||||
hsa_ext_image_t* image;
|
||||
} hsa_ext_image_create_with_layout;
|
||||
#if HSA_AMD_EXT_API_TABLE_MAJOR_VERSION >= 0x02
|
||||
struct
|
||||
{
|
||||
void** ptr;
|
||||
size_t size;
|
||||
uint64_t address;
|
||||
uint64_t flags;
|
||||
} hsa_amd_vmem_address_reserve;
|
||||
struct
|
||||
{
|
||||
void* ptr;
|
||||
size_t size;
|
||||
} hsa_amd_vmem_address_free;
|
||||
struct
|
||||
{
|
||||
hsa_amd_memory_pool_t pool;
|
||||
size_t size;
|
||||
hsa_amd_memory_type_t type;
|
||||
uint64_t flags;
|
||||
hsa_amd_vmem_alloc_handle_t* memory_handle;
|
||||
} hsa_amd_vmem_handle_create;
|
||||
struct
|
||||
{
|
||||
hsa_amd_vmem_alloc_handle_t memory_handle;
|
||||
} hsa_amd_vmem_handle_release;
|
||||
struct
|
||||
{
|
||||
void* va;
|
||||
size_t size;
|
||||
size_t in_offset;
|
||||
hsa_amd_vmem_alloc_handle_t memory_handle;
|
||||
uint64_t flags;
|
||||
} hsa_amd_vmem_map;
|
||||
struct
|
||||
{
|
||||
void* va;
|
||||
size_t size;
|
||||
} hsa_amd_vmem_unmap;
|
||||
struct
|
||||
{
|
||||
void* va;
|
||||
size_t size;
|
||||
const hsa_amd_memory_access_desc_t* desc;
|
||||
size_t desc_cnt;
|
||||
} hsa_amd_vmem_set_access;
|
||||
struct
|
||||
{
|
||||
void* va;
|
||||
hsa_access_permission_t* perms;
|
||||
hsa_agent_t agent_handle;
|
||||
} hsa_amd_vmem_get_access;
|
||||
struct
|
||||
{
|
||||
int* dmabuf_fd;
|
||||
hsa_amd_vmem_alloc_handle_t handle;
|
||||
uint64_t flags;
|
||||
} hsa_amd_vmem_export_shareable_handle;
|
||||
struct
|
||||
{
|
||||
int dmabuf_fd;
|
||||
hsa_amd_vmem_alloc_handle_t* handle;
|
||||
} hsa_amd_vmem_import_shareable_handle;
|
||||
struct
|
||||
{
|
||||
hsa_amd_vmem_alloc_handle_t* handle;
|
||||
void* addr;
|
||||
} hsa_amd_vmem_retain_alloc_handle;
|
||||
struct
|
||||
{
|
||||
hsa_amd_vmem_alloc_handle_t alloc_handle;
|
||||
hsa_amd_memory_pool_t* pool;
|
||||
hsa_amd_memory_type_t* type;
|
||||
} hsa_amd_vmem_get_alloc_properties_from_handle;
|
||||
#endif
|
||||
} rocprofiler_hsa_api_args_t;
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <rocprofiler/version.h>
|
||||
|
||||
// NOLINTNEXTLINE(performance-enum-size)
|
||||
typedef enum
|
||||
{
|
||||
@@ -223,5 +225,20 @@ typedef enum
|
||||
ROCPROFILER_HSA_API_ID_hsa_ext_image_data_get_info_with_layout,
|
||||
ROCPROFILER_HSA_API_ID_hsa_ext_image_create_with_layout,
|
||||
|
||||
#if HSA_AMD_EXT_API_TABLE_MAJOR_VERSION >= 0x02
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_address_reserve,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_address_free,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_handle_create,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_handle_release,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_map,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_unmap,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_set_access,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_get_access,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_export_shareable_handle,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_import_shareable_handle,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_retain_alloc_handle,
|
||||
ROCPROFILER_HSA_API_ID_hsa_amd_vmem_get_alloc_properties_from_handle,
|
||||
#endif
|
||||
|
||||
ROCPROFILER_HSA_API_ID_LAST,
|
||||
} rocprofiler_hsa_api_id_t;
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
// compiler information
|
||||
#define ROCPROFILER_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@"
|
||||
#define ROCPROFILER_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@"
|
||||
|
||||
#define ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR @HSA_RUNTIME_VERSION_MAJOR@
|
||||
#define ROCPROFILER_HSA_RUNTIME_VERSION_MINOR @HSA_RUNTIME_VERSION_MINOR@
|
||||
// clang-format on
|
||||
|
||||
#define ROCPROFILER_COMPILER_STRING ROCPROFILER_COMPILER_ID " v" ROCPROFILER_COMPILER_VERSION
|
||||
@@ -59,3 +62,8 @@
|
||||
#define ROCPROFILER_VERSION \
|
||||
((10000 * ROCPROFILER_VERSION_MAJOR) + (100 * ROCPROFILER_VERSION_MINOR) + \
|
||||
ROCPROFILER_VERSION_PATCH)
|
||||
|
||||
// latest hsa-runtime version supported
|
||||
#define ROCPROFILER_HSA_RUNTIME_VERSION \
|
||||
((10000 * ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR) + \
|
||||
(100 * ROCPROFILER_HSA_RUNTIME_VERSION_MINOR))
|
||||
|
||||
Ссылка в новой задаче
Block a user