C++ GPU && CPU

        

 1 #include <amp.h>
 2
 3 #include <iostream>
 4
 5 #include <winbase.h>    //操作系统的底层文件
 6
 7
 8
 9   using namespace concurrency;
10
11   using namespace std;
12
13
14
15 void main () {
16
17
18
19
20
21       int a [] = {1 ,2, 3,4 ,5, 6,7 ,8, 9,10 };
22
23       array_view<int >av( 10,a );  //GPU计算结构,av存储到GPU显存,根据数组初始化
24
25       // restrict 定向到GPU
26
27       // 直接操作AV,(index<1>)操作每一个元素
28
29
30
31       parallel_for_each(av .extent, [=](index< 1>idx )restrict (amp) {av [idx] += 1; });
32
33
34
35       for ( int i = 0; i < 10; i++) {
36
37            std::cout << av[i ] << endl;
38
39       }
40
41
42
43       cin.get ();
44
45
46
47 }
48
49  

对于GPU和CPU的各自优势:

   GPu优势在于多点计算效率高,并发计算

   CPU的优势在于单点计算效率高

 

 1 #include <amp.h>
 2 #include <algorithm>
 3 #include <iostream>
 4 #include <functional>
 5
 6 using namespace   concurrency;
 7 using namespace std;
 8
 9   template < typename T >
10   class my {
11   public :
12     //重载()函数
13       void  operator () (const T & a ) const {
14             std::cout << a << end ;
15       }
16   };
17
18 int main () {
19       int str [] = { ‘a‘,‘b‘ ,‘c‘, ‘d‘,‘e‘ ,‘f‘, ‘g‘,‘h‘ ,‘i‘, ‘j‘,‘k‘ ,‘l‘ };
20
21       array_view<int > ss (12 , str );
22       parallel_for_each(ss .extent, [=](index< 1>idx )restrict (amp) {
23            ss[idx ] += 1;
24       }
25       );
26       for ( unsigned int i = 0 ; i < 12; i++) {
27            std::cout << static_cast <char>( ss[i ]);
28       }
29       cin.get ();
30       return 0 ;
31 }
32          
时间: 2024-10-11 03:14:21

C++ GPU && CPU的相关文章

TensorFlow指定GPU/CPU进行训练和输出devices信息

TensorFlow指定GPU/CPU进行训练和输出devices信息 1.在tensorflow代码中指定GPU/CPU进行训练 with tf.device('/gpu:0'): .... with tf.device('/gpu:1'): ... with tf.device('/cpu:0'): ... 2.输出devices的信息 在指定devices的时候往往不知道具体的设备信息,这时可用下面的代码查看对应的信息 进入Python环境 from tensorflow.python.c

GPU CPU在绘图方面的差异

关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器).在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都在软件层面,而GPU在硬件层面.总的来说,我们可以用软件(使用CPU)做任何事情,但是对于图像处理,通常用硬件会更快,因为GPU使用图像对高度并行浮点运算做了优化.由于某些原因,我们想尽可能把屏幕渲染的工作交给硬件去处理.问题在于GPU并没有无限制处理性能,而且一旦资源用完的话,性能就会开始下降了(即使CPU并没有完全占用

GPU &amp; CPU编程

GPU除了用处图形渲染领域外,还可以用来做大规模的并行运算,这里我们称其为GPGPU(General Purpose GPU):GPGPU计算通常采用CPU+GPU异构模式,由CPU负责执行复杂逻辑处理和事务管理等不适合数据并行的计算,由GPU负责计算密集型的大规模并行计算.比如医学上对图像进行重建.解大规模方程组等,接下来让我们进入GPU高性能运算之CUDA的世界吧! CUDA编程: CUDA编程中,习惯称CPU为Host,GPU为Device.Grid.Block和Thread的关系 Ker

Keras/Tensorflow选择GPU/CPU运行

首先,导入os,再按照PCI_BUS_ID顺序,从0开始排列GPU, import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 然后就可以选择用哪一个或者那几个GPU运行: os.environ[”zCUDA_VISIBLE_DEVICES”] = "0" 用0号GPU,即'/gpu:0'运行: os.environ[“CUDA_VISIBLE_DEVICES”] = “0,1” 用0号和1

CPU 和 GPU 的区别

作者:知乎用户链接:https://www.zhihu.com/question/19903344/answer/96081382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理.这些都使得CPU的内部结构异常复杂.而GPU面对的则是类型高度统一的.相互无依赖的大规模数据和不需要被

pytorch将cpu训练好的模型参数load到gpu上,或者gpu-&gt;cpu上

假设我们只保存了模型的参数(model.state_dict())到文件名为modelparameters.pth, model = Net() 1. cpu -> cpu或者gpu -> gpu: checkpoint = torch.load('modelparameters.pth') model.load_state_dict(checkpoint) 2. cpu -> gpu 1 torch.load('modelparameters.pth', map_location=la

gpu和cpu区别

GPU的功耗远远超过CPUCache, local memory: CPU > GPU Threads(线程数): GPU > CPURegisters: GPU > CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须得跟着很大才行.SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU. 在计算机上运行的程序从性能的角度来说大致可分为三类:(1) I/O int

1.2CPU和GPU的设计区别

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理.这些都使得CPU的内部结构异常复杂.而GPU面对的则是类型高度统一的.相互无依赖的大规模数据和不需要被打断的纯净的计算环境. 于是CPU和GPU就呈现出非常不同的架构(示意图): 图片来自nVidia CUDA文档.其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元. GPU采用了数量众多的计算单元和

转:ubuntu 下GPU版的 tensorflow / keras的环境搭建

http://blog.csdn.net/jerr__y/article/details/53695567 前言:本文主要介绍如何在 ubuntu 系统中配置 GPU 版本的 tensorflow 环境.主要包括: - cuda 安装 - cudnn 安装 - tensorflow 安装 - keras 安装 其中,cuda 安装这部分是最重要的,cuda 安装好了以后,不管是 tensorflow 还是其他的深度学习框架都可以轻松地进行配置. 我的环境: Ubuntu14.04 + TITAN