5ba83829e2
SWDEV-94640 - Re-submit CL#1292110 after integration from fsa_foundation: - [OCL-LC-ROCm] OpenCL Runtime Library Implements OpenCL runtime API. Add HSA virtual device to ORCA. Rename hsa_foundation to ROCm Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/Makefile#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/build/Makefile#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/build/Makefile.rocm#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/mesa_glinterop.h#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocappprofile.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocappprofile.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocbinary.cpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocbinary.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompiler.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompilerlib.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompilerlib.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdefs.hpp#4 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#4 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocglinterop.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocglinterop.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roclib.cpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roclib.h#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprintf.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprintf.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocregisters.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.hpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#3 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#3 add
129 行
4.6 KiB
C++
129 行
4.6 KiB
C++
#include "hsalib.h"
|
|
#include "utils/flags.hpp"
|
|
|
|
#include "hsa.h"
|
|
#include "hsa_ext_finalize.h"
|
|
|
|
namespace oclhsa {
|
|
|
|
void* g_hsaModule = NULL;
|
|
struct HsaLibApi g_hsaLibApi;
|
|
|
|
//
|
|
// g_complibModule is defined in LoadCompLib(). This macro must be used only in LoadCompLib() function.
|
|
//
|
|
#define LOADSYMBOL(api) \
|
|
g_hsaLibApi._##api = (pfn_##api) amd::Os::getSymbol(g_hsaModule, #api); \
|
|
if( g_hsaLibApi._##api == NULL ) { \
|
|
LogError ("amd::Os::getSymbol() for exported func " #api " failed."); \
|
|
amd::Os::unloadLibrary(g_hsaModule); \
|
|
return false; \
|
|
}
|
|
|
|
|
|
bool LoadHsaLib()
|
|
{
|
|
|
|
g_hsaModule = amd::Os::loadLibrary(
|
|
LINUX_SWITCH( "hsa_runtime_core" LP64_ONLY("64")".so" ,
|
|
"hsa_runtime_core" LP64_ONLY("64")));
|
|
if( g_hsaModule == NULL ) {
|
|
return false;
|
|
}
|
|
LOADSYMBOL(hsa_init)
|
|
LOADSYMBOL(hsa_shut_down)
|
|
LOADSYMBOL(hsa_system_get_info)
|
|
LOADSYMBOL(hsa_iterate_agents)
|
|
LOADSYMBOL(hsa_agent_get_info)
|
|
LOADSYMBOL(hsa_queue_create)
|
|
LOADSYMBOL(hsa_queue_destroy)
|
|
LOADSYMBOL(hsa_queue_inactivate)
|
|
LOADSYMBOL(hsa_queue_load_read_index_acquire)
|
|
LOADSYMBOL(hsa_queue_load_read_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_load_write_index_acquire)
|
|
LOADSYMBOL(hsa_queue_load_write_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_store_write_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_store_write_index_release)
|
|
LOADSYMBOL(hsa_queue_cas_write_index_acq_rel)
|
|
LOADSYMBOL(hsa_queue_cas_write_index_acquire)
|
|
LOADSYMBOL(hsa_queue_cas_write_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_cas_write_index_release)
|
|
LOADSYMBOL(hsa_queue_add_write_index_acq_rel)
|
|
LOADSYMBOL(hsa_queue_add_write_index_acquire)
|
|
LOADSYMBOL(hsa_queue_add_write_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_add_write_index_release)
|
|
LOADSYMBOL(hsa_queue_store_read_index_relaxed)
|
|
LOADSYMBOL(hsa_queue_store_read_index_release)
|
|
LOADSYMBOL(hsa_agent_iterate_regions)
|
|
LOADSYMBOL(hsa_region_get_info)
|
|
LOADSYMBOL(hsa_memory_register)
|
|
LOADSYMBOL(hsa_memory_deregister)
|
|
LOADSYMBOL(hsa_memory_allocate)
|
|
LOADSYMBOL(hsa_memory_free)
|
|
LOADSYMBOL(hsa_signal_create)
|
|
LOADSYMBOL(hsa_signal_destroy)
|
|
LOADSYMBOL(hsa_signal_load_relaxed)
|
|
LOADSYMBOL(hsa_signal_load_acquire)
|
|
LOADSYMBOL(hsa_signal_store_relaxed)
|
|
LOADSYMBOL(hsa_signal_store_release)
|
|
LOADSYMBOL(hsa_signal_wait_relaxed)
|
|
LOADSYMBOL(hsa_signal_wait_acquire)
|
|
LOADSYMBOL(hsa_signal_and_relaxed)
|
|
LOADSYMBOL(hsa_signal_and_acquire)
|
|
LOADSYMBOL(hsa_signal_and_release)
|
|
LOADSYMBOL(hsa_signal_and_acq_rel)
|
|
LOADSYMBOL(hsa_signal_or_relaxed)
|
|
LOADSYMBOL(hsa_signal_or_acquire)
|
|
LOADSYMBOL(hsa_signal_or_release)
|
|
LOADSYMBOL(hsa_signal_or_acq_rel)
|
|
LOADSYMBOL(hsa_signal_xor_relaxed)
|
|
LOADSYMBOL(hsa_signal_xor_acquire)
|
|
LOADSYMBOL(hsa_signal_xor_release)
|
|
LOADSYMBOL(hsa_signal_xor_acq_rel)
|
|
LOADSYMBOL(hsa_signal_exchange_relaxed)
|
|
LOADSYMBOL(hsa_signal_exchange_acquire)
|
|
LOADSYMBOL(hsa_signal_exchange_release)
|
|
LOADSYMBOL(hsa_signal_exchange_acq_rel)
|
|
LOADSYMBOL(hsa_signal_add_relaxed)
|
|
LOADSYMBOL(hsa_signal_add_acquire)
|
|
LOADSYMBOL(hsa_signal_add_release)
|
|
LOADSYMBOL(hsa_signal_add_acq_rel)
|
|
LOADSYMBOL(hsa_signal_subtract_relaxed)
|
|
LOADSYMBOL(hsa_signal_subtract_acquire)
|
|
LOADSYMBOL(hsa_signal_subtract_release)
|
|
LOADSYMBOL(hsa_signal_subtract_acq_rel)
|
|
LOADSYMBOL(hsa_signal_cas_relaxed)
|
|
LOADSYMBOL(hsa_signal_cas_acquire)
|
|
LOADSYMBOL(hsa_signal_cas_release)
|
|
LOADSYMBOL(hsa_signal_cas_acq_rel)
|
|
LOADSYMBOL(hsa_status_string)
|
|
LOADSYMBOL(hsa_ext_program_create)
|
|
LOADSYMBOL(hsa_ext_program_destroy)
|
|
LOADSYMBOL(hsa_ext_add_module)
|
|
LOADSYMBOL(hsa_ext_finalize_program)
|
|
LOADSYMBOL(hsa_ext_query_program_agent_id)
|
|
LOADSYMBOL(hsa_ext_query_program_agent_count)
|
|
LOADSYMBOL(hsa_ext_query_program_agents)
|
|
LOADSYMBOL(hsa_ext_query_program_module_count)
|
|
LOADSYMBOL(hsa_ext_query_program_modules)
|
|
LOADSYMBOL(hsa_ext_query_program_brig_module)
|
|
LOADSYMBOL(hsa_ext_query_call_convention)
|
|
LOADSYMBOL(hsa_ext_query_symbol_definition)
|
|
LOADSYMBOL(hsa_ext_define_program_allocation_global_variable_address)
|
|
LOADSYMBOL(hsa_ext_query_program_allocation_global_variable_address)
|
|
LOADSYMBOL(hsa_ext_define_agent_allocation_global_variable_address)
|
|
LOADSYMBOL(hsa_ext_query_agent_global_variable_address)
|
|
LOADSYMBOL(hsa_ext_define_readonly_variable_address)
|
|
LOADSYMBOL(hsa_ext_query_readonly_variable_address)
|
|
LOADSYMBOL(hsa_ext_query_kernel_descriptor_address)
|
|
LOADSYMBOL(hsa_ext_query_indirect_function_descriptor_address)
|
|
LOADSYMBOL(hsa_ext_validate_program)
|
|
LOADSYMBOL(hsa_ext_validate_program_module)
|
|
LOADSYMBOL(hsa_ext_serialize_program)
|
|
LOADSYMBOL(hsa_ext_deserialize_program)
|
|
LOADSYMBOL(hsa_ext_get_memory_type)
|
|
LOADSYMBOL(hsa_ext_set_memory_type)
|
|
return true;
|
|
}
|
|
}
|