// Creates DeviceInfo object for the given GPU
DeviceInfo(int device_id) : device_id_(device_id) { query(); }
- std::string name() const { return name_; }
+ std::string name() const;
// Return compute capability versions
- int majorVersion() const { return majorVersion_; }
- int minorVersion() const { return minorVersion_; }
+ int majorVersion() const;
+ int minorVersion() const;
- int multiProcessorCount() const { return multi_processor_count_; }
+ int multiProcessorCount() const;
size_t sharedMemPerBlock() const;
// Checks whether the GPU module can be run on the given device
bool isCompatible() const;
- int deviceID() const { return device_id_; }
+ int deviceID() const;
private:
// Private section is fictive to preserve bin compatibility.
size_t cv::gpu::DeviceInfo::totalMemory() const { return deviceInfoFuncTable()->totalMemory(); }
bool cv::gpu::DeviceInfo::supports(FeatureSet feature_set) const { return deviceInfoFuncTable()->supports(feature_set); }
bool cv::gpu::DeviceInfo::isCompatible() const { return deviceInfoFuncTable()->isCompatible(); }
+int cv::gpu::DeviceInfo::deviceID() const { return deviceInfoFuncTable()->deviceID(); };
+int cv::gpu::DeviceInfo::majorVersion() const { return deviceInfoFuncTable()->majorVersion(); }
+int cv::gpu::DeviceInfo::minorVersion() const { return deviceInfoFuncTable()->minorVersion(); }
+std::string cv::gpu::DeviceInfo::name() const { return deviceInfoFuncTable()->name(); }
+int cv::gpu::DeviceInfo::multiProcessorCount() const { return deviceInfoFuncTable()->multiProcessorCount(); }
void cv::gpu::DeviceInfo::query() { deviceInfoFuncTable()->query(); }
void cv::gpu::printCudaDeviceInfo(int device) { gpuFuncTable()->printCudaDeviceInfo(device); }
virtual bool supports(FeatureSet) const = 0;
virtual bool isCompatible() const = 0;
virtual void query() = 0;
+ virtual int deviceID() const = 0;
+ virtual std::string name() const = 0;
+ virtual int majorVersion() const = 0;
+ virtual int minorVersion() const = 0;
+ virtual int multiProcessorCount() const = 0;
virtual ~DeviceInfoFuncTable() {};
};
bool supports(FeatureSet) const { throw_nogpu; return false; }
bool isCompatible() const { throw_nogpu; return false; }
void query() { throw_nogpu; }
+ int deviceID() const { throw_nogpu; return -1; };
+ std::string name() const { throw_nogpu; return std::string(); }
+ int majorVersion() const { throw_nogpu; return -1; }
+ int minorVersion() const { throw_nogpu; return -1; }
+ int multiProcessorCount() const { throw_nogpu; return -1; }
};
class EmptyFuncTable : public GpuFuncTable
minorVersion_ = prop->minor;
}
+ int deviceID() const
+ {
+ return device_id_;
+ }
+
+ std::string name() const
+ {
+ return name_;
+ }
+
+ int majorVersion() const
+ {
+ return majorVersion_;
+ }
+
+ int minorVersion() const
+ {
+ return minorVersion_;
+ }
+
+ int multiProcessorCount() const
+ {
+ return multi_processor_count_;
+ }
+
private:
int device_id_;