From ac50335c91c474b5f67ba4f709a45a1449a6b3f1 Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 8 May 2018 12:50:31 -0400 Subject: [PATCH] P4 to Git Change 1551928 by gandryey@gera-w8 on 2018/05/08 12:42:43 SWDEV-151981 - Removal of CPU support on Windows - Part 3. Remove device fission extension Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_common.hpp#20 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#59 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_device.cpp#71 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_icd.cpp#32 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#218 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#299 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#165 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#28 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#26 edit --- rocclr/runtime/device/device.cpp | 84 ------------------ rocclr/runtime/device/device.hpp | 106 ----------------------- rocclr/runtime/device/gpu/gpudevice.hpp | 5 -- rocclr/runtime/device/pal/paldevice.hpp | 5 -- rocclr/runtime/device/rocm/rocdevice.hpp | 10 --- 5 files changed, 210 deletions(-) diff --git a/rocclr/runtime/device/device.cpp b/rocclr/runtime/device/device.cpp index d73965a7ad..d4df1d28fc 100644 --- a/rocclr/runtime/device/device.cpp +++ b/rocclr/runtime/device/device.cpp @@ -230,11 +230,6 @@ Device::~Device() { delete[] info_.extensions_; } } - - if (info_.partitionCreateInfo_.type_.byCounts_ && - info_.partitionCreateInfo_.byCounts_.countsList_ != NULL) { - delete[] info_.partitionCreateInfo_.byCounts_.countsList_; - } } bool Device::create() { @@ -1635,83 +1630,4 @@ bool ClBinary::isSPIRV() const { return false; } -cl_device_partition_property PartitionType::toCL() const { - static cl_device_partition_property conv[] = {CL_DEVICE_PARTITION_EQUALLY, - CL_DEVICE_PARTITION_BY_COUNTS, - CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN}; - return conv[amd::leastBitSet(value_)]; -} - -size_t PartitionType::toCL(cl_device_partition_property* types) const { - size_t i = 0; - if (equally_) { - types[i++] = CL_DEVICE_PARTITION_EQUALLY; - } - if (byCounts_) { - types[i++] = CL_DEVICE_PARTITION_BY_COUNTS; - } - if (byAffinityDomain_) { - types[i++] = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN; - } - return i; -} - -cl_device_affinity_domain AffinityDomain::toCL() const { return (cl_device_affinity_domain)value_; } - -#ifdef cl_ext_device_fission - -cl_device_partition_property_ext PartitionType::toCLExt() const { - static cl_device_partition_property_ext conv[] = {CL_DEVICE_PARTITION_EQUALLY_EXT, - CL_DEVICE_PARTITION_BY_COUNTS_EXT, - CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT}; - return conv[amd::leastBitSet(value_)]; -} - -size_t PartitionType::toCLExt(cl_device_partition_property_ext* types) const { - size_t i = 0; - if (equally_) { - types[i++] = CL_DEVICE_PARTITION_EQUALLY_EXT; - } - if (byCounts_) { - types[i++] = CL_DEVICE_PARTITION_BY_COUNTS_EXT; - } - if (byAffinityDomain_) { - types[i++] = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT; - } - return i; -} - -cl_device_partition_property_ext AffinityDomain::toCLExt() const { - static cl_device_partition_property_ext conv[] = { - CL_AFFINITY_DOMAIN_NUMA_EXT, CL_AFFINITY_DOMAIN_L4_CACHE_EXT, - CL_AFFINITY_DOMAIN_L3_CACHE_EXT, CL_AFFINITY_DOMAIN_L2_CACHE_EXT, - CL_AFFINITY_DOMAIN_L1_CACHE_EXT, CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT}; - return conv[amd::leastBitSet(value_)]; -} - -size_t AffinityDomain::toCLExt(cl_device_partition_property_ext* affinities) const { - size_t i = 0; - if (numa_) { - affinities[i++] = CL_AFFINITY_DOMAIN_NUMA_EXT; - } - if (cacheL4_) { - affinities[i++] = CL_AFFINITY_DOMAIN_L4_CACHE_EXT; - } - if (cacheL3_) { - affinities[i++] = CL_AFFINITY_DOMAIN_L3_CACHE_EXT; - } - if (cacheL2_) { - affinities[i++] = CL_AFFINITY_DOMAIN_L2_CACHE_EXT; - } - if (cacheL1_) { - affinities[i++] = CL_AFFINITY_DOMAIN_L1_CACHE_EXT; - } - if (next_) { - affinities[i++] = CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT; - } - return i; -} - -#endif // cl_ext_device_fission - } // namespace device diff --git a/rocclr/runtime/device/device.hpp b/rocclr/runtime/device/device.hpp index 8942a6b9f5..e78e449c9a 100644 --- a/rocclr/runtime/device/device.hpp +++ b/rocclr/runtime/device/device.hpp @@ -171,97 +171,6 @@ namespace device { class ClBinary; class BlitManager; -struct PartitionType : public amd::EmbeddedObject { - enum { EQUALLY = (1 << 0), BY_COUNTS = (1 << 1), BY_AFFINITY_DOMAIN = (1 << 2) }; - - union { - struct { - uint equally_ : 1; - uint byCounts_ : 1; - uint byAffinityDomain_ : 1; - }; - uint value_; - }; - - size_t getNumSet() const { return (size_t)amd::countBitsSet(value_); } - - cl_device_partition_property toCL() const; - size_t toCL(cl_device_partition_property* types) const; -#ifdef cl_ext_device_fission - cl_device_partition_property_ext toCLExt() const; - size_t toCLExt(cl_device_partition_property_ext* types) const; -#endif -}; - -struct AffinityDomain : public amd::EmbeddedObject { - enum { - AFFINITY_DOMAIN_NUMA = (1 << 0), - AFFINITY_DOMAIN_L4_CACHE = (1 << 1), - AFFINITY_DOMAIN_L3_CACHE = (1 << 2), - AFFINITY_DOMAIN_L2_CACHE = (1 << 3), - AFFINITY_DOMAIN_L1_CACHE = (1 << 4), - AFFINITY_DOMAIN_NEXT_PARTITIONABLE = (1 << 5) - }; - - union { - struct { - uint numa_ : 1; - uint cacheL4_ : 1; - uint cacheL3_ : 1; - uint cacheL2_ : 1; - uint cacheL1_ : 1; - uint next_ : 1; - }; - uint value_; - }; - - size_t getNumSet() const { return (size_t)amd::countBitsSet(value_); } - - cl_device_affinity_domain toCL() const; -#ifdef cl_ext_device_fission - cl_device_partition_property_ext toCLExt() const; - size_t toCLExt(cl_device_partition_property_ext* affinities) const; -#endif -}; - -//! Device partition properties. -struct PartitionInfo : public amd::EmbeddedObject { - PartitionType type_; - union { - struct { - size_t numComputeUnits_; - } equally_; - - AffinityDomain byAffinityDomain_; - - struct { - const cl_uint* countsList_; - size_t listSize_; - } byCounts_; - }; -}; - -//! Create Sub-Devices request properties. -struct CreateSubDevicesInfo : public amd::HeapObject { - PartitionInfo p_; - virtual cl_uint countsListAt(size_t i) const = 0; - virtual ~CreateSubDevicesInfo() {} -}; - -template struct CreateSubDevicesInfoT : public CreateSubDevicesInfo { - virtual cl_uint countsListAt(size_t i) const { - return (cl_uint) reinterpret_cast(p_.byCounts_.countsList_)[i]; - } - - void initCountsList(const PROP_T* props) { - p_.byCounts_.countsList_ = reinterpret_cast(props); - p_.byCounts_.listSize_ = 0; - for (; *props != ((PROP_T)0); ++props) { - ++p_.byCounts_.listSize_; - } - } -}; - //! Physical device properties. struct Info : public amd::EmbeddedObject { //! The OpenCL device type. @@ -487,17 +396,6 @@ struct Info : public amd::EmbeddedObject { //! Returns max number of images in a 1D or 2D image array size_t imageMaxArraySize_; - //! Returns the list of partition types supported by device - PartitionType partitionProperties_; - - //! Returns the list of supported affinity domains for - //! partitioning the device using CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN - AffinityDomain affinityDomain_; - - //! Returns the properties argument specified in clCreateSubDevices - //! if device is a subdevice. - PartitionInfo partitionCreateInfo_; - //! Returns CL_TRUE if the devices preference is for the user to be //! responsible for synchronization cl_bool preferredInteropUserSync_; @@ -1574,10 +1472,6 @@ class Device : public RuntimeObject { //! Return this device's type. cl_device_type type() const { return info().type_ & ~(CL_DEVICE_TYPE_DEFAULT); } - //! Create sub-devices according to the given partition scheme. - virtual cl_int createSubDevices(device::CreateSubDevicesInfo& create_info, cl_uint num_entries, - cl_device_id* devices, cl_uint* num_devices) = 0; - //! Create a new virtual device environment. virtual device::VirtualDevice* createVirtualDevice(CommandQueue* queue = NULL) = 0; diff --git a/rocclr/runtime/device/gpu/gpudevice.hpp b/rocclr/runtime/device/gpu/gpudevice.hpp index 72885988af..7db18a5404 100644 --- a/rocclr/runtime/device/gpu/gpudevice.hpp +++ b/rocclr/runtime/device/gpu/gpudevice.hpp @@ -52,11 +52,6 @@ class NullDevice : public amd::Device { bool create(CALtarget target //!< GPU device identifier ); - virtual cl_int createSubDevices(device::CreateSubDevicesInfo& create_info, cl_uint num_entries, - cl_device_id* devices, cl_uint* num_devices) { - return CL_INVALID_VALUE; - } - //! Instantiate a new virtual device virtual device::VirtualDevice* createVirtualDevice(amd::CommandQueue* queue = NULL) { return NULL; diff --git a/rocclr/runtime/device/pal/paldevice.hpp b/rocclr/runtime/device/pal/paldevice.hpp index b12fb4f8e6..a129bd413c 100644 --- a/rocclr/runtime/device/pal/paldevice.hpp +++ b/rocclr/runtime/device/pal/paldevice.hpp @@ -51,11 +51,6 @@ class NullDevice : public amd::Device { uint xNACKSupported = 0 //!< GPU xNACKSupported ); - virtual cl_int createSubDevices(device::CreateSubDevicesInfo& create_info, cl_uint num_entries, - cl_device_id* devices, cl_uint* num_devices) { - return CL_INVALID_VALUE; - } - //! Instantiate a new virtual device virtual device::VirtualDevice* createVirtualDevice(amd::CommandQueue* queue = NULL) { return NULL; diff --git a/rocclr/runtime/device/rocm/rocdevice.hpp b/rocclr/runtime/device/rocm/rocdevice.hpp index 56e2c5723e..2bb83408a4 100644 --- a/rocclr/runtime/device/rocm/rocdevice.hpp +++ b/rocclr/runtime/device/rocm/rocdevice.hpp @@ -285,16 +285,6 @@ class Device : public NullDevice { // need real implementation. /////////////////////////////////////////////////////////////////////////////// - // #ifdef cl_ext_device_fission - //! Create sub-devices according to the given partition scheme. - virtual cl_int createSubDevices(device::CreateSubDevicesInfo& create_inf, cl_uint num_entries, - cl_device_id* devices, cl_uint* num_devices) { - return CL_INVALID_VALUE; - } - // #endif // cl_ext_device_fission - - // bool Device::create(CALuint ordinal); - //! Instantiate a new virtual device virtual device::VirtualDevice* createVirtualDevice(amd::CommandQueue* queue = nullptr);