diff --git a/hipamd/src/CMakeLists.txt b/hipamd/src/CMakeLists.txt index 84ecdb5eab..858f430b6b 100755 --- a/hipamd/src/CMakeLists.txt +++ b/hipamd/src/CMakeLists.txt @@ -40,6 +40,8 @@ if(ADDRESS_SANITIZER) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${ASAN_LINKER_FLAGS}") endif() +option(DISABLE_DIRECT_DISPATCH "Disable Direct Dispatch" OFF) + option(BUILD_SHARED_LIBS "Build the shared library" ON) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") @@ -148,6 +150,10 @@ else() target_include_directories(amdhip64 PRIVATE $) endif() +if(DISABLE_DIRECT_DISPATCH) + target_compile_definitions(amdhip64 PRIVATE DISABLE_DIRECT_DISPATCH) +endif() + # Short-Term solution for pre-compiled headers for online compilation # Enable pre compiled header if(__HIP_ENABLE_PCH) @@ -296,7 +302,7 @@ add_custom_command(TARGET amdhip64 POST_BUILD COMMAND add_library(host INTERFACE) target_link_libraries(host INTERFACE amdhip64) - + add_library(device INTERFACE) target_link_libraries(device INTERFACE host) diff --git a/hipamd/src/hip_context.cpp b/hipamd/src/hip_context.cpp index 0e114029f3..3779c317d2 100755 --- a/hipamd/src/hip_context.cpp +++ b/hipamd/src/hip_context.cpp @@ -39,8 +39,14 @@ void init() { if (!amd::Runtime::initialized()) { amd::IS_HIP = true; GPU_NUM_MEM_DEPENDENCY = 0; - AMD_DIRECT_DISPATCH = flagIsDefault(AMD_DIRECT_DISPATCH) ? IS_LINUX : AMD_DIRECT_DISPATCH; +#if DISABLE_DIRECT_DISPATCH + constexpr bool kDirectDispatch = false; +#else + constexpr bool kDirectDispatch = IS_LINUX; +#endif + AMD_DIRECT_DISPATCH = flagIsDefault(AMD_DIRECT_DISPATCH) ? kDirectDispatch : AMD_DIRECT_DISPATCH; amd::Runtime::init(); + LogPrintfInfo("Direct Dispatch: %d", AMD_DIRECT_DISPATCH); } const std::vector& devices = amd::Device::getDevices(CL_DEVICE_TYPE_GPU, false);