diff --git a/rocclr/CMakeLists.txt b/rocclr/CMakeLists.txt index 9247ce1448..d713eeb7aa 100644 --- a/rocclr/CMakeLists.txt +++ b/rocclr/CMakeLists.txt @@ -72,7 +72,7 @@ find_package(amd_comgr REQUIRED CONFIG ) message(STATUS "Code Object Manager found at ${amd_comgr_DIR}.") -find_package(hsa-runtime64 REQUIRED CONFIG +find_package(hsa-runtime64 1.3 REQUIRED CONFIG PATHS /opt/rocm/ PATH_SUFFIXES diff --git a/rocclr/device/device.hpp b/rocclr/device/device.hpp index 0084ac18f2..eb79e6eaf9 100644 --- a/rocclr/device/device.hpp +++ b/rocclr/device/device.hpp @@ -573,6 +573,9 @@ struct Info : public amd::EmbeddedObject { //! global CU mask which will be applied to all queues created on this device std::vector globalCUMask_; + + //! AQL Barrier Value Packet support + bool aqlBarrierValue_; }; //! Device settings diff --git a/rocclr/device/rocm/rocdevice.cpp b/rocclr/device/rocm/rocdevice.cpp index c660a54796..e7e836bce7 100644 --- a/rocclr/device/rocm/rocdevice.cpp +++ b/rocclr/device/rocm/rocdevice.cpp @@ -1542,6 +1542,10 @@ bool Device::populateOCLDeviceConstants() { info_.pcieDeviceId_ = pciDeviceId_; info_.cooperativeGroups_ = settings().enableCoopGroups_; info_.cooperativeMultiDeviceGroups_ = settings().enableCoopMultiDeviceGroups_; + + // TODO: Update this to use HSA API when it is ready. For now limiting this to gfx908 + info_.aqlBarrierValue_ = + (isa().versionMajor() == 9 && isa().versionMinor() == 0 && isa().versionStepping() == 8); } info_.maxPipePacketSize_ = info_.maxMemAllocSize_; diff --git a/rocclr/platform/command_utils.hpp b/rocclr/platform/command_utils.hpp index c6b5304eca..9a8b812f0a 100644 --- a/rocclr/platform/command_utils.hpp +++ b/rocclr/platform/command_utils.hpp @@ -1,3 +1,26 @@ +/* Copyright (c) 2021-present Advanced Micro Devices, Inc. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + +#ifndef COMMAND_UTILS_HPP_ +#define COMMAND_UTILS_HPP_ + // Dummy command types for Stream Wait and Write commands. #define ROCCLR_COMMAND_STREAM_WAIT_VALUE 0x4501 #define ROCCLR_COMMAND_STREAM_WRITE_VALUE 0x4502 @@ -7,3 +30,5 @@ #define ROCCLR_STREAM_WAIT_VALUE_EQ 0x1 #define ROCCLR_STREAM_WAIT_VALUE_AND 0x2 #define ROCCLR_STREAM_WAIT_VALUE_NOR 0x3 + +#endif // COMMAND_UTILS_HPP_ \ No newline at end of file