aqlprofil API: removing from HSA hsa_api_trace/hsa_ext_interface
Change-Id: I12fac55ea9ccfdb119899bf9d000e3c8b0bf4bbb
[ROCm/ROCR-Runtime commit: 6e1b9288f6]
Cette révision appartient à :
@@ -58,7 +58,6 @@ namespace core {
|
||||
::AmdExtTable amd_ext_api;
|
||||
::FinalizerExtTable finalizer_api;
|
||||
::ImageExtTable image_api;
|
||||
::AqlProfileExtTable aqlprofile_api;
|
||||
|
||||
HsaApiTable();
|
||||
void Init();
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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(); }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur