本文整理汇总了C++中DevicePtr::ID方法的典型用法代码示例。如果您正苦于以下问题:C++ DevicePtr::ID方法的具体用法?C++ DevicePtr::ID怎么用?C++ DevicePtr::ID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DevicePtr
的用法示例。
在下文中一共展示了DevicePtr::ID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getGpu
//-----------------------------------------------------------------------------
GpuPtr Helper::getGpu(int index)
{
// Check it against selection criteria.
pair_int gpuBlock = selectDeviceAndBlock(index);
if (-1 == gpuBlock.first) return GpuPtr();
scoped_lock lock(mutex);
// First check to see if this GPU device has been initialized.
DevicePtr device;
DevicelPtrMap::iterator dit = devPtrMap.find(gpuBlock.first);
if (dit == devPtrMap.end())
{
device.reset(new Device(gpuBlock.first));
// Double check to make sure our device is OK
if (-1 == device->ID()) return GpuPtr();
devPtrMap.insert(std::make_pair(gpuBlock.first, device));
}
else
{
device = dit->second;
// Make sure we activate this per-thread.
device->setDevice();
}
// Now that we have a device, get the block implementation handle.
GpuPtr impl;
GpuPtrMap::iterator it = gpuPtrMap.find(index);
if (it == gpuPtrMap.end())
{
impl.reset(new Gpu(device));
gpuPtrMap.insert(std::make_pair(index, impl));
}
else
{
impl = it->second;
}
if (!atExitRegistered)
{
atexit(Helper::destroy);
atExitRegistered = true;
}
return impl;
}