aqlprofil API: removing from HSA hsa_api_trace/hsa_ext_interface

Change-Id: I12fac55ea9ccfdb119899bf9d000e3c8b0bf4bbb


[ROCm/ROCR-Runtime commit: 6e1b9288f6]
Cette révision appartient à :
Evgeny
2017-11-10 16:37:41 -06:00
Parent fd81986bb2
révision acaf0d0aac
9 fichiers modifiés avec 45 ajouts et 224 suppressions
-1
Voir le fichier
@@ -58,7 +58,6 @@ namespace core {
::AmdExtTable amd_ext_api;
::FinalizerExtTable finalizer_api;
::ImageExtTable image_api;
::AqlProfileExtTable aqlprofile_api;
HsaApiTable();
void Init();
-7
Voir le fichier
@@ -65,14 +65,10 @@ class ExtensionEntryPoints {
// Table of function pointers for Hsa Extension Finalizer
FinalizerExtTable finalizer_api;
// Table of function pointers for Hsa Extension AqlProfiler
AqlProfileExtTable aqlprofile_api;
ExtensionEntryPoints();
bool LoadFinalizer(std::string library_name);
bool LoadImage(std::string library_name);
bool LoadAqlProfileApi(std::string library_name);
void Unload();
private:
@@ -87,9 +83,6 @@ class ExtensionEntryPoints {
// Initialize table for HSA Image Extension Api's
void InitImageExtTable();
// Initialize table for HSA AqlProfile Extension Api's
void InitAqlProfileExtTable();
// Initialize Amd Ext table for Api related to Images
void InitAmdExtTable();
+4 -2
Voir le fichier
@@ -59,8 +59,9 @@
#include "core/inc/interrupt_signal.h"
#include "core/inc/isa.h"
#include "core/inc/runtime.h"
#include "core/util/os.h"
#include "hsa_ext_image.h"
#include "inc/hsa_ven_amd_aqlprofile.h"
// Size of scratch (private) segment pre-allocated per thread, in bytes.
#define DEFAULT_SCRATCH_BYTES_PER_THREAD 2048
@@ -782,7 +783,8 @@ hsa_status_t GpuAgent::GetInfo(hsa_agent_info_t attribute, void* value) const {
setFlag(HSA_EXTENSION_IMAGES);
}
if (core::hsa_internal_api_table_.aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn != NULL) {
if (os::LibHandle lib = os::LoadLib(kAqlProfileLib)) {
os::CloseLib(lib);
setFlag(HSA_EXTENSION_AMD_AQLPROFILE);
}
+30 -9
Voir le fichier
@@ -53,6 +53,7 @@
#define __lseek__ _lseek
#else
#include <unistd.h>
#include <dlfcn.h>
#define __read__ read
#define __lseek__ lseek
#endif // _WIN32 || _WIN64
@@ -466,19 +467,39 @@ hsa_status_t hsa_system_get_major_extension_table(uint16_t extension, uint16_t v
}
if (extension == HSA_EXTENSION_AMD_AQLPROFILE) {
if (version_major !=
core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.version.major_id) {
if (version_major != hsa_ven_amd_aqlprofile_VERSION_MAJOR) {
return HSA_STATUS_ERROR;
}
os::LibHandle lib = os::LoadLib(kAqlProfileLib);
if (lib == NULL) {
fprintf(stderr, "Loading '%s' error: %s\n", kAqlProfileLib, dlerror());
return HSA_STATUS_ERROR;
}
dlerror(); // Clear any existing error
hsa_ven_amd_aqlprofile_1_00_pfn_t ext_table;
ext_table.hsa_ven_amd_aqlprofile_error_string = hsa_ven_amd_aqlprofile_error_string;
ext_table.hsa_ven_amd_aqlprofile_validate_event = hsa_ven_amd_aqlprofile_validate_event;
ext_table.hsa_ven_amd_aqlprofile_start = hsa_ven_amd_aqlprofile_start;
ext_table.hsa_ven_amd_aqlprofile_stop = hsa_ven_amd_aqlprofile_stop;
ext_table.hsa_ven_amd_aqlprofile_legacy_get_pm4 = hsa_ven_amd_aqlprofile_legacy_get_pm4;
ext_table.hsa_ven_amd_aqlprofile_get_info = hsa_ven_amd_aqlprofile_get_info;
ext_table.hsa_ven_amd_aqlprofile_iterate_data = hsa_ven_amd_aqlprofile_iterate_data;
ext_table.hsa_ven_amd_aqlprofile_error_string =
(decltype(::hsa_ven_amd_aqlprofile_error_string)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_error_string");
ext_table.hsa_ven_amd_aqlprofile_validate_event =
(decltype(::hsa_ven_amd_aqlprofile_validate_event)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_validate_event");
ext_table.hsa_ven_amd_aqlprofile_start =
(decltype(::hsa_ven_amd_aqlprofile_start)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_start");
ext_table.hsa_ven_amd_aqlprofile_stop =
(decltype(::hsa_ven_amd_aqlprofile_stop)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_stop");
ext_table.hsa_ven_amd_aqlprofile_legacy_get_pm4 =
(decltype(::hsa_ven_amd_aqlprofile_legacy_get_pm4)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_legacy_get_pm4");
ext_table.hsa_ven_amd_aqlprofile_get_info =
(decltype(::hsa_ven_amd_aqlprofile_get_info)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_get_info");
ext_table.hsa_ven_amd_aqlprofile_iterate_data =
(decltype(::hsa_ven_amd_aqlprofile_iterate_data)*)
os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_iterate_data");
memcpy(table, &ext_table, Min(sizeof(ext_table), table_length));
+1 -16
Voir le fichier
@@ -85,12 +85,11 @@ void HsaApiTable::Init() {
UpdateAmdExts();
hsa_api.amd_ext_ = &amd_ext_api;
// Initialize Api tables for Finalizer, Image, AqlProfile to NULL
// Initialize Api tables for Finalizer, Image to NULL
// The tables are initialized as part
// of Hsa Runtime initialization, including their major ids
hsa_api.finalizer_ext_ = NULL;
hsa_api.image_ext_ = NULL;
hsa_api.aqlprofile_ext_ = NULL;
}
void HsaApiTable::Reset() {
@@ -114,13 +113,6 @@ void HsaApiTable::CloneExts(void* ext_table, uint32_t table_id) {
hsa_api.image_ext_ = &image_api;
return;
}
// Update HSA Extension AqlProfile Api table
if (table_id == HSA_EXT_AQLPROFILE_API_TABLE_ID) {
aqlprofile_api = *reinterpret_cast<AqlProfileExtTable*>(ext_table);
hsa_api.aqlprofile_ext_ = &aqlprofile_api;
return;
}
}
void HsaApiTable::LinkExts(void* ext_table, uint32_t table_id) {
@@ -140,13 +132,6 @@ void HsaApiTable::LinkExts(void* ext_table, uint32_t table_id) {
hsa_api.image_ext_ = reinterpret_cast<ImageExtTable*>(ext_table);
return;
}
// Update HSA Extension AqlProfile Api table
if (table_id == HSA_EXT_AQLPROFILE_API_TABLE_ID) {
aqlprofile_api = *reinterpret_cast<AqlProfileExtTable*>(ext_table);
hsa_api.aqlprofile_ext_ = reinterpret_cast<AqlProfileExtTable*>(ext_table);
return;
}
}
// Update Api table for Hsa Core Runtime
-152
Voir le fichier
@@ -171,7 +171,6 @@ static T0 hsa_amd_null(T1, T2, T3, T4, T5, T6) {
ExtensionEntryPoints::ExtensionEntryPoints() {
InitFinalizerExtTable();
InitImageExtTable();
InitAqlProfileExtTable();
InitAmdExtTable();
}
@@ -215,21 +214,6 @@ void ExtensionEntryPoints::InitImageExtTable() {
image_api.hsa_ext_image_create_with_layout_fn = hsa_ext_null;
}
void ExtensionEntryPoints::InitAqlProfileExtTable() {
// Initialize Version of Api Table
aqlprofile_api.version.major_id = 0x00;
aqlprofile_api.version.minor_id = 0x00;
aqlprofile_api.version.step_id = 0x00;
aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_validate_event_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_start_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_stop_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_legacy_get_pm4_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_get_info_fn = hsa_ext_null;
aqlprofile_api.hsa_ven_amd_aqlprofile_iterate_data_fn = hsa_ext_null;
}
// Initialize Amd Ext table for Api related to Images
void ExtensionEntryPoints::InitAmdExtTable() {
hsa_api_table_.amd_ext_api.hsa_amd_image_create_fn = hsa_ext_null;
@@ -271,7 +255,6 @@ void ExtensionEntryPoints::Unload() {
InitFinalizerExtTable();
InitImageExtTable();
InitAqlProfileExtTable();
InitAmdExtTable();
core::hsa_internal_api_table_.Reset();
}
@@ -504,82 +487,6 @@ bool ExtensionEntryPoints::LoadFinalizer(std::string library_name) {
return true;
}
bool ExtensionEntryPoints::LoadAqlProfileApi(std::string library_name) {
os::LibHandle lib = os::LoadLib(library_name);
if (lib == NULL) {
return false;
}
libs_.push_back(lib);
void* ptr;
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_error_string");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn ==
(decltype(::hsa_ven_amd_aqlprofile_error_string)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn = (decltype(::hsa_ven_amd_aqlprofile_error_string)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_validate_event");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_validate_event_fn ==
(decltype(::hsa_ven_amd_aqlprofile_validate_event)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_validate_event_fn = (decltype(::hsa_ven_amd_aqlprofile_validate_event)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_start");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_start_fn ==
(decltype(::hsa_ven_amd_aqlprofile_start)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_start_fn = (decltype(::hsa_ven_amd_aqlprofile_start)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_stop");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_stop_fn ==
(decltype(::hsa_ven_amd_aqlprofile_stop)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_stop_fn = (decltype(::hsa_ven_amd_aqlprofile_stop)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_legacy_get_pm4");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_legacy_get_pm4_fn ==
(decltype(::hsa_ven_amd_aqlprofile_legacy_get_pm4)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_legacy_get_pm4_fn = (decltype(::hsa_ven_amd_aqlprofile_legacy_get_pm4)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_get_info");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_get_info_fn ==
(decltype(::hsa_ven_amd_aqlprofile_get_info)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_get_info_fn = (decltype(::hsa_ven_amd_aqlprofile_get_info)*)ptr;
}
ptr = os::GetExportAddress(lib, "hsa_ven_amd_aqlprofile_iterate_data");
if (ptr != NULL) {
assert(aqlprofile_api.hsa_ven_amd_aqlprofile_iterate_data_fn ==
(decltype(::hsa_ven_amd_aqlprofile_iterate_data)*)hsa_ext_null &&
"Duplicate load of extension import.");
aqlprofile_api.hsa_ven_amd_aqlprofile_iterate_data_fn = (decltype(::hsa_ven_amd_aqlprofile_iterate_data)*)ptr;
}
// Initialize Version of Api Table
aqlprofile_api.version.major_id = HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION;
aqlprofile_api.version.minor_id = sizeof(::AqlProfileExtTable);
aqlprofile_api.version.step_id = HSA_AQLPROFILE_API_TABLE_STEP_VERSION;
// Update handle of table of HSA extensions
hsa_internal_api_table_.CloneExts(&aqlprofile_api,
core::HsaApiTable::HSA_EXT_AQLPROFILE_API_TABLE_ID);
ptr = os::GetExportAddress(lib, "Load");
if (ptr != NULL) {
((Load_t)ptr)(&core::hsa_internal_api_table_.hsa_api);
}
return true;
}
} // namespace core
//---------------------------------------------------------------------------//
@@ -749,63 +656,6 @@ hsa_status_t hsa_ext_image_create_with_layout(
image);
}
hsa_status_t hsa_ven_amd_aqlprofile_error_string(
const char** str) // [out] pointer on the error string
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn(str);
}
hsa_status_t hsa_ven_amd_aqlprofile_validate_event(
hsa_agent_t agent, // HSA handle for the profiling GPU
const hsa_ven_amd_aqlprofile_event_t* event, // [in] Pointer on validated event
bool* result) // [out] True if the event valid, False otherwise
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_validate_event_fn(agent, event, result);
}
#ifndef HSA_AQLPROFILE_START_NEW_API
hsa_status_t hsa_ven_amd_aqlprofile_start(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile contex object
hsa_ext_amd_aql_pm4_packet_t* aql_start_packet) // [out] profile start AQL packet
#else
hsa_status_t hsa_ven_amd_aqlprofile_start(
hsa_ven_amd_aqlprofile_profile_t* profile, // [in/out] profile contex object
hsa_ext_amd_aql_pm4_packet_t* aql_start_packet) // [out] profile start AQL packet
#endif
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_start_fn(profile, aql_start_packet);
}
hsa_status_t hsa_ven_amd_aqlprofile_stop(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile contex object
hsa_ext_amd_aql_pm4_packet_t* aql_stop_packet) // [out] profile stop AQL packet
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_stop_fn(profile, aql_stop_packet);
}
hsa_status_t hsa_ven_amd_aqlprofile_legacy_get_pm4(
const hsa_ext_amd_aql_pm4_packet_t* aql_packet, // [in] AQL packet
void* data) // [out] PM4 packet blob
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_legacy_get_pm4_fn(aql_packet, data);
}
hsa_status_t hsa_ven_amd_aqlprofile_get_info(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile context object
hsa_ven_amd_aqlprofile_info_type_t attribute, // [in] requested profile attribute
void* value) // [in/out] returned value
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_get_info_fn(profile, attribute, value);
}
hsa_status_t hsa_ven_amd_aqlprofile_iterate_data(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile context object
hsa_ven_amd_aqlprofile_data_callback_t callback, // [in] callback to iterate the output data
void* data) // [in/out] data passed to the callback
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_iterate_data_fn(profile, callback, data);
}
//---------------------------------------------------------------------------//
// Stubs for internal extension functions
//---------------------------------------------------------------------------//
@@ -817,5 +667,3 @@ hsa_status_t hsa_amd_image_get_info_max_dim(hsa_agent_t component,
return core::Runtime::runtime_singleton_->extensions_.image_api
.hsa_amd_image_get_info_max_dim_fn(component, attribute, value);
}
+4 -12
Voir le fichier
@@ -50,7 +50,6 @@
#include <vector>
#include "core/common/shared.h"
#include "core/inc/hsa_ext_interface.h"
#include "core/inc/amd_cpu_agent.h"
#include "core/inc/amd_gpu_agent.h"
@@ -59,8 +58,9 @@
#include "core/inc/signal.h"
#include "core/inc/interrupt_signal.h"
#include "core/inc/hsa_ext_amd_impl.h"
#include "core/inc/hsa_api_trace_int.h"
#include "core/util/os.h"
#include "inc/hsa_ven_amd_aqlprofile.h"
#define HSA_VERSION_MAJOR 1
#define HSA_VERSION_MINOR 1
@@ -573,7 +573,8 @@ hsa_status_t Runtime::GetSystemInfo(hsa_system_info_t attribute, void* value) {
setFlag(HSA_EXTENSION_IMAGES);
}
if (hsa_internal_api_table_.aqlprofile_api.hsa_ven_amd_aqlprofile_error_string_fn != NULL) {
if (os::LibHandle lib = os::LoadLib(kAqlProfileLib)) {
os::CloseLib(lib);
setFlag(HSA_EXTENSION_AMD_AQLPROFILE);
}
@@ -1189,15 +1190,11 @@ void Runtime::LoadExtensions() {
"libhsa-ext-finalize64.so.1"};
static const std::string kImageLib[] = {"hsa-ext-image64.dll",
"libhsa-ext-image64.so.1"};
static const std::string kAqlProfileLib[] = {"hsa-amd-aqlprofile64.dll",
"libhsa-amd-aqlprofile64.so.1"};
#else
static const std::string kFinalizerLib[] = {"hsa-ext-finalize.dll",
"libhsa-ext-finalize.so.1"};
static const std::string kImageLib[] = {"hsa-ext-image.dll",
"libhsa-ext-image.so.1"};
static const std::string kAqlProfileLib[] = {"hsa-amd-aqlprofile.dll",
"libhsa-amd-aqlprofile.so.1"};
#endif
// Update Hsa Api Table with handle of Image extension Apis
@@ -1209,11 +1206,6 @@ void Runtime::LoadExtensions() {
extensions_.LoadImage(kImageLib[os_index(os::current_os)]);
hsa_api_table_.LinkExts(&extensions_.image_api,
core::HsaApiTable::HSA_EXT_IMAGE_API_TABLE_ID);
// Update Hsa Api Table with handle of AqlProfile extension Apis
extensions_.LoadAqlProfileApi(kAqlProfileLib[os_index(os::current_os)]);
hsa_api_table_.LinkExts(&extensions_.aqlprofile_api,
core::HsaApiTable::HSA_EXT_AQLPROFILE_API_TABLE_ID);
}
void Runtime::UnloadExtensions() { extensions_.Unload(); }
-25
Voir le fichier
@@ -48,12 +48,10 @@
#include "hsa_ext_image.h"
#include "hsa_ext_amd.h"
#include "hsa_ext_finalize.h"
#include "hsa_ven_amd_aqlprofile.h"
#else
#include "inc/hsa_ext_image.h"
#include "inc/hsa_ext_amd.h"
#include "inc/hsa_ext_finalize.h"
#include "inc/hsa_ven_amd_aqlprofile.h"
#endif
#include <string.h>
@@ -133,18 +131,6 @@ struct ImageExtTable {
decltype(hsa_ext_image_create_with_layout)* hsa_ext_image_create_with_layout_fn;
};
// Table to export HSA AqlProfile AMD specific Extension Apis
struct AqlProfileExtTable {
ApiTableVersion version;
decltype(hsa_ven_amd_aqlprofile_error_string)* hsa_ven_amd_aqlprofile_error_string_fn;
decltype(hsa_ven_amd_aqlprofile_validate_event)* hsa_ven_amd_aqlprofile_validate_event_fn;
decltype(hsa_ven_amd_aqlprofile_start)* hsa_ven_amd_aqlprofile_start_fn;
decltype(hsa_ven_amd_aqlprofile_stop)* hsa_ven_amd_aqlprofile_stop_fn;
decltype(hsa_ven_amd_aqlprofile_legacy_get_pm4)* hsa_ven_amd_aqlprofile_legacy_get_pm4_fn;
decltype(hsa_ven_amd_aqlprofile_get_info)* hsa_ven_amd_aqlprofile_get_info_fn;
decltype(hsa_ven_amd_aqlprofile_iterate_data)* hsa_ven_amd_aqlprofile_iterate_data_fn;
};
// Table to export AMD Extension Apis
struct AmdExtTable {
ApiTableVersion version;
@@ -383,9 +369,6 @@ struct HsaApiTable {
// Table of function pointers to HSA Image Extension
ImageExtTable* image_ext_;
// Table of function pointers to AqlProfile AMD Extension
AqlProfileExtTable* aqlprofile_ext_;
};
// Structure containing instances of different api tables
@@ -395,7 +378,6 @@ struct HsaApiTableContainer {
AmdExtTable amd_ext;
FinalizerExtTable finalizer_ext;
ImageExtTable image_ext;
AqlProfileExtTable aqlprofile_ext;
// Default initialization of a container instance
HsaApiTableContainer() {
@@ -422,11 +404,6 @@ struct HsaApiTableContainer {
image_ext.version.minor_id = sizeof(ImageExtTable);
image_ext.version.step_id = HSA_IMAGE_API_TABLE_STEP_VERSION;
root.image_ext_ = &image_ext;
aqlprofile_ext.version.major_id = HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION;
aqlprofile_ext.version.minor_id = sizeof(AqlProfileExtTable);
aqlprofile_ext.version.step_id = HSA_AQLPROFILE_API_TABLE_STEP_VERSION;
root.aqlprofile_ext_ = &aqlprofile_ext;
}
};
@@ -482,7 +459,5 @@ static void inline copyTables(const HsaApiTable* src, HsaApiTable* dest) {
copyElement(&dest->finalizer_ext_->version, &src->finalizer_ext_->version);
if ((offsetof(HsaApiTable, image_ext_) < dest->version.minor_id))
copyElement(&dest->image_ext_->version, &src->image_ext_->version);
if ((offsetof(HsaApiTable, aqlprofile_ext_) < dest->version.minor_id))
copyElement(&dest->aqlprofile_ext_->version, &src->aqlprofile_ext_->version);
}
#endif
+6
Voir le fichier
@@ -280,6 +280,12 @@ hsa_status_t hsa_ven_amd_aqlprofile_error_string(
* @brief Extension version.
*/
#define hsa_ven_amd_aqlprofile 001000
#define hsa_ven_amd_aqlprofile_VERSION_MAJOR 1
#ifdef HSA_LARGE_MODEL
static const char kAqlProfileLib[] = "libhsa-amd-aqlprofile64.so.1";
#else
static const char kAqlProfileLib[] = "libhsa-amd-aqlprofile.so.1";
#endif
/**
* @brief Extension function table.