accelerator(加速器)
来源:互联网 发布:女程序员转行做什么 编辑:程序博客网 时间:2024/04/29 08:09
概述
一个加速器代表一个“目标”c++ AMP代码可以执行和数据可以驻留的地方。通常加速器是一个GPU设备。accelerator在c++ AMP作为加速器的对象类。
通常情况下,你不需要获取加速器对象,因为运行时会默认系统中最好的加速器作为默认设备。当然,如果你需要根据需求选择你的加速器,或需要在程序中使用多个加速器时,你就需要操作加速器对象啦。
构造函数与操作运算的使用
你可以在运行时启动后,查询和获取系统中所有加速区的向量(std:vector)
除了列举所有加速器之外,你还可以直接通过设备路径直接创建一个加速器,前提是你知道该设备的路径。如
accelerator acc(L"PCI\\VEN_1002&DEV_6898&SUBSYS_0B001002etc");
下面有一些预定义的字符串(预定义的加速器常量),你可以直接将其传递给加速器构造函数创建加速器对象。如:
accelerator::default_accelerator 默认加速器
accelerator::direct3d_ref 在CPU上模拟direct3d设备加速器 accelerator acc(accelerator::direct3d_ref);
accelerator::direct3d_warp 在CPU上利用多核及SSE的仿真加速器 accelerator acc(accelerator::direct3d_warp);
accelerator::cpu_accelerator CPU加速器 accelerator acc(accelerator::cpu_accelerator);
你还可以创建一个加速器,并通过复制-(构造函数)或运算符重载=对另一个加速器对象赋值。说到重载,你还可以通过比较两者是否相等, 来判断两个加速器对象是否来一个底层设备。
查询加速器特征
当给定一个加速器对象时,你可以访问其描述,版本,设备路径,以KB为大小表示的内存大小,是否是模拟器等,是否支持双精度等。
示例如下:
vector<accelerator> accs = accelerator::get_all();
std::for_each(accs.begin(), accs.end(), [] (accelerator acc)
{
std::wcout << "New accelerator: " << acc.description << std::endl;
std::wcout << "device_path = " << acc.device_path << std::endl;
std::wcout << "version = " << (acc.version >> 16) << '.' << (acc.version & 0xFFFF) << std::endl;
std::wcout << "dedicated_memory = " << acc.dedicated_memory << " KB" << std::endl;
std::wcout << "doubles = " << ((acc.supports_double_precision) ? "true" : "false") << std::endl;
std::wcout << "limited_doubles = " << ((acc.supports_limited_double_precision) ? "true" : "false") << std::endl;
std::wcout << "has_display = " << ((acc.has_display) ? "true" : "false") << std::endl;
std::wcout << "is_emulated = " << ((acc.is_emulated) ? "true" : "false") << std::endl;
std::wcout << "is_debug = " << ((acc.is_debug) ? "true" : "false") << std::endl;
std::cout << std::endl;
});
accelerator_view
在下一篇博客中,我们将讲述另一个相关的类:accelerator_view.。这里只说以下内容就够了:
每一个加速区可以具有1-n个相关的加速器对象。你可以通过default_view获取加速器的默认视图。
或者通过creat_view 创建一个新的加速器视图。creat_view接收queuing_mode (队列模式)的enum类型的数值(包括queuing_mode_automatic or queuing_mode_immediate)作为参数。
一个加速器代表一个“目标”c++ AMP代码可以执行和数据可以驻留的地方。通常加速器是一个GPU设备。accelerator在c++ AMP作为加速器的对象类。
通常情况下,你不需要获取加速器对象,因为运行时会默认系统中最好的加速器作为默认设备。当然,如果你需要根据需求选择你的加速器,或需要在程序中使用多个加速器时,你就需要操作加速器对象啦。
构造函数与操作运算的使用
你可以在运行时启动后,查询和获取系统中所有加速区的向量(std:vector)
除了列举所有加速器之外,你还可以直接通过设备路径直接创建一个加速器,前提是你知道该设备的路径。如
accelerator acc(L"PCI\\VEN_1002&DEV_6898&SUBSYS_0B001002etc");
下面有一些预定义的字符串(预定义的加速器常量),你可以直接将其传递给加速器构造函数创建加速器对象。如:
accelerator::default_accelerator 默认加速器
accelerator::direct3d_ref 在CPU上模拟direct3d设备加速器 accelerator acc(accelerator::direct3d_ref);
accelerator::direct3d_warp 在CPU上利用多核及SSE的仿真加速器 accelerator acc(accelerator::direct3d_warp);
accelerator::cpu_accelerator CPU加速器 accelerator acc(accelerator::cpu_accelerator);
你还可以创建一个加速器,并通过复制-(构造函数)或运算符重载=对另一个加速器对象赋值。说到重载,你还可以通过比较两者是否相等, 来判断两个加速器对象是否来一个底层设备。
查询加速器特征
当给定一个加速器对象时,你可以访问其描述,版本,设备路径,以KB为大小表示的内存大小,是否是模拟器等,是否支持双精度等。
示例如下:
vector<accelerator> accs = accelerator::get_all();
std::for_each(accs.begin(), accs.end(), [] (accelerator acc)
{
std::wcout << "New accelerator: " << acc.description << std::endl;
std::wcout << "device_path = " << acc.device_path << std::endl;
std::wcout << "version = " << (acc.version >> 16) << '.' << (acc.version & 0xFFFF) << std::endl;
std::wcout << "dedicated_memory = " << acc.dedicated_memory << " KB" << std::endl;
std::wcout << "doubles = " << ((acc.supports_double_precision) ? "true" : "false") << std::endl;
std::wcout << "limited_doubles = " << ((acc.supports_limited_double_precision) ? "true" : "false") << std::endl;
std::wcout << "has_display = " << ((acc.has_display) ? "true" : "false") << std::endl;
std::wcout << "is_emulated = " << ((acc.is_emulated) ? "true" : "false") << std::endl;
std::wcout << "is_debug = " << ((acc.is_debug) ? "true" : "false") << std::endl;
std::cout << std::endl;
});
accelerator_view
在下一篇博客中,我们将讲述另一个相关的类:accelerator_view.。这里只说以下内容就够了:
每一个加速区可以具有1-n个相关的加速器对象。你可以通过default_view获取加速器的默认视图。
或者通过creat_view 创建一个新的加速器视图。creat_view接收queuing_mode (队列模式)的enum类型的数值(包括queuing_mode_automatic or queuing_mode_immediate)作为参数。
0 0
- accelerator(加速器)
- poj3232 - Accelerator(加速器)
- 网络加速器(Web accelerator)是上网加速软件
- 网络加速器(Web accelerator)是上网加速软件
- YouTube加速器:SpeedBit Video Accelerator
- IE 8 Accelerator加速器开发介绍{转载}
- PGI Accelerator将支持NVIDIA GPU加速器
- Setting a Keyboard Accelerator for a Menu Item:为一个菜单项添加键盘加速器
- AI加速器相关论文1:《DianNao: A Small-Footprint High-Throughput Accelerator for Ubiquitous Machine-Learning》
- poj 3232 Accelerator(二分)
- poj 3232 Accelerator(二分)
- 加速器
- 加速器
- 为对话框程序加上Accelerator(快捷键)
- 年末系列(2)-加速器
- 加速键 (Accelerator)和 热键(HotKey) [转]
- 加速键(Accelerator)和热键(Hotkey)
- Php accelerator
- Error| Error initializing classpath: Connection timed out: connect(Use--stacktrace to see the full )
- ideal创建Struts 2.x项目
- hdu 5945 Fxx and game(dp+单调队列)
- android Linkify ,PhoneNumberUtils,BroadcastReceiver
- jsp小记
- accelerator(加速器)
- Terminal File & Directory Commands
- sdutoj 2252 分段函数求值
- HDU 5469(2015 ICPC上海网络赛)---Antonidas(树上分治)
- 反射基本知识
- linux c实现mkdir命令
- 单调队列
- 慕课网首页仿写——头和标签栏制作
- Doubbo与Zookeeper的关系