精华内容
下载资源
问答
  • 众所周知,Nvidia的CUDA计算平台可以实现数量惊人的并行运算,因此受各个流行的机器学习框架青睐。为了尝试人工智能,我最近组装了一台机器,配备了一块入门级的GeForce GTX 1060显卡。该显卡来自于索泰,有1280个...

    006b6ce2e7df14aa8b25d0cef58c0d13.png

    众所周知,Nvidia的CUDA计算平台可以实现数量惊人的并行运算,因此受各个流行的机器学习框架青睐。为了尝试人工智能,我最近组装了一台机器,配备了一块入门级的GeForce GTX 1060显卡。

    该显卡来自于索泰,有1280个CUDA核心,带6 GB的GDDR5显存。

    c7c2dfb170627067037b83122d8f2826.png
    图1. Nvidia GeForce GTX 1060显卡

    以下是我进行的两个简单测试,略做记录。第一个测试,用C++写的CUDA程序计算两个大数组的浮点加和,得到了两千多倍的加速。第二个是用Keras+TensorFlow写的MNIST手写数字识别,得到了10倍加速。

    大数组浮点加和测试

    我按照Nvidia开发者博客的CUDA入门文章,An Even Easier Introduction to CUDA,写了一个简单的程序,对两个长度均为100万的单精度浮点数组进行逐元素加和。

    CUDA的并行运算方式也就是所谓的SIMT,即单指令多线程。在CUDA的术语中,运行在GPU上的函数称为核(kernel)。为了进行并行运算,CUDA将函数的执行分散到线程块(数量为numBlocks),每个线程块含有若干个线程(数量为blockSize),所有线程块和其中的线程共同组成了线程网格(Grid)。调用函数时,需要在函数名后面用CUDA特有的三重尖括号指定numBlocks和blockSize。

    add<<<numBlocks, blockSize>>>(N, x, y);

    其中N为数组的长度,x为第一个数组,y为第二个数组。

    修改其中的numBlocks和blockSize,用nvprof进行性能分析,得到如下测试结果。

    c10de905a0f66f78ad926061eab65dc5.png
    图2. 性能分析结果,numBlocks = 1, blockSize = 1

    f6e9075e59d2b22b6bc08040f0dd3039.png
    图3. 性能分析结果,numBlocks = 3907, blockSize = 256

    b7eaa5fec1e241916139364f7be68755.png
    图4. 大数组浮点加和测试结果汇总

    其中最后一行的3907是在调用前通过计算得到的numBlocks。

    numBlocks = (N + blockSize -1) / blockSize;

    由上面的结果,可以得出,充分利用GPU的多线程并行计算特性后,计算速度提升了惊人的2383倍。

    MNIST手写数字识别测试

    第二个测试是用Keras进行了经典的MNIST手写数字识别。代码来自于一篇非常深入浅出的文章,Image Classification using Feedforward Neural Network in Keras。

    09c7c31fed7f297b313dde32404fa9ef.png
    图5. MNIST手写数字识别模型

    Keras提供了一个非常高层的API,而其底层可以是其他深度学习框架,如TensorFlow。我在同一台电脑上分别安装了CPU版和GPU版的TensorFlow。下面是测试结果。

    07a96059210f25261a4dafd54d57f291.png
    图6. MNIST手写数字识别测试结果,CPU版

    44e023b3c9cb24a1bb6b36441e0acd7a.png
    图7. MNIST手写数字识别测试结果,GPU版

    f49eca8068ee9b140521a8c8f538cf5d.png
    图8. MNIST手写数字识别测试结果汇总

    由上图可见,在这个简单的深度网络测试中,通过GPU得到了10倍的加速。

    总结

    在某些可并行处理的应用中,即使是上一代的中端游戏显卡,其大量的计算单元(本例中的显卡含1280个CUDA cores)也能得到显著的提升。

    笔者身处非常传统的非技术行业,以上知识均为自学,因此难免有遗漏或错误,欢迎各位读者(假装有读者)提出宝贵的建议。

    ------------------出其不意的分割线--------------------

    本文转自在我的个人博客。更多有趣的文章,欢迎访问http://www.jwnote.com。

    初试CUDA,入门显卡实现两千倍加速 - Jay's Notes​jwnote.com
    bdbd10dbfe2e98da20b909ee1199471b.png
    展开全文
  • 和SUPERPI不同,利用多线程+GPU算圆周率 显卡越好算得越快 N卡跑CUDA或OPENCL都行 A卡只能OPENCL了
  • GPU计算(一)

    千次阅读 2020-07-07 22:42:13
    gpu计算 图形处理、也就是显示核心,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微...GPU 加速计算是指同时利用图形处理器

    简单描述

    图形处理、也就是显示核心,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 包括市面上的游戏本也是带有独立显卡的,而商务本和超级本是不带的,带上显卡,重量一下就上去了。

    用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。显卡作为电脑主机里的一个重要组成部分,承担输出显示图形的任务,对于机器运行一些大型游戏,也是必不可少的,主在看游戏对画面的渲染有没有达到一个重度,像那种像素游戏(坦克大战、俄罗斯方块),带不带显卡都不重要了,换成怪物猎人、巫师、上古卷轴这种,试下仅仅用核显来跑,全特效跑,不卡到怀疑人生才怪。还有对于从事专业图形设计的人来说显卡非常重要。

    什么是GPU加速计算?

    GPU 加速计算是指同时利用图形处理器 (GPU) 和 CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。GPU 加速器于 2007 年由 NVIDIA® 率先推出,现已在世界各地为政府实验室、高校、公司以WW中小型企业的高能效数据中心提供支持。GPU 能够使从汽车、手机和平板电脑到无人机和机器人等平台的应用程序加速运行.

    GPU如何加快软件应用程序的运行速度

    GPU 加速计算可以提供非凡的应用程序性能,能将应用程序计算密集部分的工作负载转移到 GPU,同时仍由 CPU 运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快,因为将图像处理这些容量大的计算都给分担的出去了,整体执行的速度也就上去了。

    在这里插入图片描述

    GPU与CPU性能比较

    理解 GPU 和 CPU 之间区别的一种简单方式是比较它们如何处理任务。CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。

    在这里插入图片描述
    GPU 拥有数以千计的核心,可高效地处理并行任务

    在这里插入图片描述

    在需要GPU进行运算时,以NVIDIA推出的CUDA(Compute Unified Device Architecture)为例,整体的原理如下:
    在这里插入图片描述
    整体分为4步:

    • 从主机内存将需要处理的数据copy到GPU的内存
    • CPU发送数据处理执行给GPU
    • GPU执行并行数据处理
    • 将结果从GPU内存copy到主机内存

    CUDA提供了对于一般性通用需求的大规模并发编程模型,使用户可以对NVIDIA GPU方便的对于 GPU进行并发性编程。如果进行编译优化会在特定操作系统里面把计算并行化分配到GPU的多个core里面,由于GPU有多个core(上千个),所以并发度大大提高,运算效率会比CPU高。

    GPU和CPU计算能力比较

    测试环境:
    CPU:Intel®_Core™i7-9700_CPU@_3.00GHz
    GPU:NVIDIA GeForce RTX 2080Ti

    • FFT计算的性能分析
    1. dft离散傅里叶变换的公式如下:

    X是原始数据,一个复数数组。Y = dft(X) 和 X = ifft(Y) 分别表示傅里叶变换和傅里叶逆变换。假设X的数据个数为n,那么Y的数据个数也是n,计算公式就是:
    正变换:
    在这里插入图片描述
    逆变换:
    在这里插入图片描述
    其中:
    在这里插入图片描述
    2. 对于1024个浮点复数,进行一维DFT变换。在保证计算结果正确一致的前提下,这次结果用来比较下计算速度。
    计算20次,将运行时间累加再计算平均值,就会得出如下统计结果:

    在这里插入图片描述

    其中,opencv是在CPU上进行多核并行计算的。cufftlib在GPU上执行计算,并没有将数据拷贝耗时计算在内。可以看出,GPU上计算的花费时间,是CPU上花费时间的一半。

    1. 对于1024 * 1024 的图像资源,进行2维DFT计算,在确保计算结果正确一致的前提下,比较计算速度(计算耗时)。

    实验同样是进行20次计算,将运行时间累加再计算平均值。得出如下统计结果
    在这里插入图片描述

    可以看出,cufftlib 计算的耗时远远小于opencv的计算耗时,15us vs. 6ms,相差400倍,这个性能提升,哇~,可以的了,相当的可观。

    1. 有没发现,这里面有个问题,cufftPlan1d 和cufftPlan2d,这两个函数的运行都很耗时。对于1024x1024大小的计算来说,cufftPlan2d耗时可达168ms。这个操作,在fft的长度确定之后,只需要运行一次,所以对于特定的应用程序来说,可以在应用运行起来之时,执行一次,后面运行就很快了。
    • 最大最小值计算的性能分析
    1. 在CPU上使用串行计算,1024x1024的图像数据(8位无符号),依次遍历每个数据,进行比较,保存最大值和最小值。
    2. 在第一种方式的基础上,使用openmp进行并行化处理。
    3. 使用GPU进行计算,主要采用先分段计算,再归约的计算方法。

    对于以上3种方式,在保证结果正确一致的情况下,比较计算耗时,分别计算20次,然后计算各自的平均耗时。结果如下:

    在这里插入图片描述

    1. 得出:

      • 在CPU上使用omp进行并行化,计算性能最好,花费629微秒;

      • 其次是cuda GPU,花费717微秒;

      • 花费时间最多的是CPU串行计算,花费2.11毫秒。

    2. 这个里面GPU跟omp相比,没有优势,因为计算最大最小值的时候,需要将每个数据与其它数据进行比较,或者是与相邻的数据比较,或者是与临时最大值最小值进行比较,更新最大最小值时还需要进行同步。使得这个计算,只能在小局部内并行,最后还是需要归约。而CPU上omp计算时,多个线程间对共享资源的更新,要快很多。

    • 图像滤波计算性能分析
    1. 图像滤波是指,使用特性的滤波核,在图像矩阵中移动,对应的计算图像中与核矩阵重叠部分与滤波核矩阵的点乘,将结果保存到图像部分矩阵的中心点。滤波核一般是小的矩阵,对于sobel滤波来说,滤波核如下:

    -1 -2 -1 -1 0 1

    0 0 0 以及 -2 0 2

    1 2 1 -1 0 1

    分别对应y方向上的二阶导,和x方向上的一阶导

    1. 使用1024x1024的图像进行sobel滤波计算

      • 使用opencv在CPU上进行计算

      • 使用cuda GPU进行计算
        在保证计算结果正确一致的前提下,比较计算耗时

      • 如果不把GPU的数据拷贝时间考虑在内,运行结果如下:
        在这里插入图片描述

      • 如果计算拷贝时间,将结果数据从GPU拷贝回主机的时间 计算在内,那么运行结果如下:
        在这里插入图片描述

    2. 可以看出,如果不考虑GPU和主机之间的数据传输时间,GPU的计算性能还是很有优势,这是因为对于这个滤波计算,各个像素的计算可以实现完全的并行化,计算的结果之间没有依赖性。所以计算性能就有很大提升。

    3. 但是如果考虑数据传输时间,GPU计算耗时将比CPU计算耗时更长。所以在实际程序中,要考虑怎样避免数据传输(拷贝)时间影响程序的整体性能,主要的做法有:

      • 让尽量多的计算在GPU上运行,让GPU的计算工作量远远大于拷贝传输数据的工作量,而且不要频繁的拷贝传输,这样就让拷贝传输耗时在整体耗时中占比减小,从而对整体性能影响不大。一个极端的情况就是,整个程序的计算都在GPU上进行,在开始的时候,将数据拷贝传输到GPU,然后所有计算都在GPU上进行,最后将结果拷贝回主机。

      • 在CPU上启动多线程,一个线程在拷贝的过程中,另一个线程在执行计算,这样,计算与拷贝的时间就重合了,消除了一部分耗时。

      • 使用cuda GPU中流(stream)的机制,对GPU的操作,使用异步方式,在一个流进行拷贝的时候,另一个流进行计算。

    展开全文
  • 英伟达 GPU显卡计算能力查询表

    万次阅读 2020-11-15 11:06:35
    近期小白因为项目需要开始在电脑上配置深度学习环境。...提示:利用浏览器的搜索功能(Ctrl+F),查询自身GPU的计算性能 如,想知道GTX980Ti的计算能力,在搜索框中键入:GTX 980 Ti即可(注意这里有

    近期小白因为项目需要开始在电脑上配置深度学习环境。经过一些列的苦难折磨之后,电脑环境终于配置好了,但是却被我的显卡劝退了。

    我是用的是算力2.1的显卡,环境要求算力3以上的显卡,无奈最后只能使用实验室的服务器了。

    下面列出各种型号的英伟达 GPU与对应的算力,希望能够帮助各位读者。在配置环境之前先看一下自己显卡的算力,以免像小白一样耽误时间。

    提示:利用浏览器的搜索功能(Ctrl+F),查询自身GPU的计算性能
    如,想知道GTX980Ti的计算能力,在搜索框中键入:GTX 980 Ti即可(注意这里有2个空格)

    Tesla K80	3.7
    Tesla K40	3.5
    Tesla K20	3.5
    Tesla C2075	2.0
    Tesla C2050/C2070	2.0
    NVIDIA A100	8.0
    NVIDIA T4	7.5
    NVIDIA V100	7.0
    Tesla P100	6.0
    Tesla P40	6.1
    Tesla P4	6.1
    Tesla M60	5.2
    Tesla M40	5.2
    Tesla K80	3.7
    Tesla K40	3.5
    Tesla K20	3.5
    Tesla K10	3.0
    
    Quadro RTX 8000	7.5
    Quadro RTX 6000	7.5
    Quadro RTX 5000	7.5
    Quadro RTX 4000	7.5
    Quadro GV100	7.0
    Quadro GP100	6.0
    Quadro P6000	6.1
    Quadro P5000	6.1
    Quadro P4000	6.1
    Quadro P2200	6.1
    Quadro P2000	6.1
    Quadro P1000	6.1
    Quadro P620	6.1
    Quadro P600	6.1
    Quadro P400	6.1
    Quadro M6000 24GB	5.2
    Quadro M6000	5.2
    Quadro K6000	3.5
    Quadro M5000	5.2
    Quadro K5200	3.5
    Quadro K5000	3.0
    Quadro M4000	5.2
    Quadro K4200	3.0
    Quadro K4000	3.0
    Quadro M2000	5.2
    Quadro K2200	3.0
    Quadro K2000	3.0
    Quadro K2000D	3.0
    Quadro K1200	5.0
    Quadro K620	5.0
    Quadro K600	3.0
    Quadro K420	3.0
    Quadro 410	3.0
    Quadro Plex 7000	2.0
    RTX 5000	7.5
    RTX 4000	7.5
    RTX 3000	7.5
    T2000	7.5
    T1000	7.5
    P620	6.1
    P520	6.1
    Quadro P5200	6.1
    Quadro P4200	6.1
    Quadro P3200	6.1
    Quadro P5000	6.1
    Quadro P4000	6.1
    Quadro P3000	6.1
    Quadro P2000	6.1
    Quadro P1000	6.1
    Quadro P600	6.1
    Quadro P500	6.1
    Quadro M5500M	5.2
    Quadro M2200	5.2
    Quadro M1200	5.0
    Quadro M620	5.2
    Quadro M520	5.0
    Quadro K6000M	3.0
    Quadro K5200M	3.0
    Quadro K5100M	3.0
    Quadro M5000M	5.0
    Quadro K500M	3.0
    Quadro K4200M	3.0
    Quadro K4100M	3.0
    Quadro M4000M	5.0
    Quadro K3100M	3.0
    Quadro M3000M	5.0
    Quadro K2200M	3.0
    Quadro K2100M	3.0
    Quadro M2000M	5.0
    Quadro K1100M	3.0
    Quadro M1000M	5.0
    Quadro K620M	5.0
    Quadro K610M	3.5
    Quadro M600M	5.0
    Quadro K510M	3.5
    Quadro M500M	5.0
    
    NVIDIA NVS 810	5.0
    NVIDIA NVS 510	3.0
    NVIDIA NVS 315	2.1
    NVIDIA NVS 310	2.1
    NVIDIA NVS 810	5.0
    NVIDIA NVS 510	3.0
    NVIDIA NVS 315	2.1
    NVIDIA NVS 310	2.1
    GeForce RTX 3090	8.6
    GeForce RTX 3080	8.6
    GeForce RTX 3070	8.6
    NVIDIA TITAN RTX	7.5
    Geforce RTX 2080 Ti	7.5
    Geforce RTX 2080	7.5
    Geforce RTX 2070	7.5
    Geforce RTX 2060	7.5
    NVIDIA TITAN V	7.0
    NVIDIA TITAN Xp	6.1
    NVIDIA TITAN X	6.1
    GeForce GTX 1080 Ti	6.1
    GeForce GTX 1080	6.1
    GeForce GTX 1070	6.1
    GeForce GTX 1060	6.1
    GeForce GTX 1050	6.1
    GeForce GTX TITAN X	5.2
    GeForce GTX TITAN Z	3.5
    GeForce GTX TITAN Black	3.5
    GeForce GTX TITAN	3.5
    GeForce GTX 980 Ti	5.2
    GeForce GTX 980	5.2
    GeForce GTX 970	5.2
    GeForce GTX 960	5.2
    GeForce GTX 950	5.2
    GeForce GTX 780 Ti	3.5
    GeForce GTX 780	3.5
    GeForce GTX 770	3.0
    GeForce GTX 760	3.0
    GeForce GTX 750 Ti	5.0
    GeForce GTX 750	5.0
    GeForce GTX 690	3.0
    GeForce GTX 680	3.0
    GeForce GTX 670	3.0
    GeForce GTX 660 Ti	3.0
    GeForce GTX 660	3.0
    GeForce GTX 650 Ti BOOST	3.0
    GeForce GTX 650 Ti	3.0
    GeForce GTX 650	3.0
    GeForce GTX 560 Ti	2.1
    GeForce GTX 550 Ti	2.1
    GeForce GTX 460	2.1
    GeForce GTS 450	2.1
    GeForce GTS 450*	2.1
    GeForce GTX 590	2.0
    GeForce GTX 580	2.0
    GeForce GTX 570	2.0
    GeForce GTX 480	2.0
    GeForce GTX 470	2.0
    GeForce GTX 465	2.0
    GeForce GT 740	3.0
    GeForce GT 730	3.5
    GeForce GT 730 DDR3,128bit	2.1
    GeForce GT 720	3.5
    GeForce GT 705*	3.5
    GeForce GT 640 (GDDR5)	3.5
    GeForce GT 640 (GDDR3)	2.1
    GeForce GT 630	2.1
    GeForce GT 620	2.1
    GeForce GT 610	2.1
    GeForce GT 520	2.1
    GeForce GT 440	2.1
    GeForce GT 440*	2.1
    GeForce GT 430	2.1
    GeForce GT 430*	2.1
    Geforce RTX 2080	7.5
    Geforce RTX 2070	7.5
    Geforce RTX 2060	7.5
    GeForce GTX 1080	6.1
    GeForce GTX 1070	6.1
    GeForce GTX 1060	6.1
    GeForce GTX 980	5.2
    GeForce GTX 980M	5.2
    GeForce GTX 970M	5.2
    GeForce GTX 965M	5.2
    GeForce GTX 960M	5.0
    GeForce GTX 950M	5.0
    GeForce 940M	5.0
    GeForce 930M	5.0
    GeForce 920M	3.5
    GeForce 910M	5.2
    GeForce GTX 880M	3.0
    GeForce GTX 870M	3.0
    GeForce GTX 860M	3.0/5.0(**)
    GeForce GTX 850M	5.0
    GeForce 840M	5.0
    GeForce 830M	5.0
    GeForce 820M	2.1
    GeForce 800M	2.1
    GeForce GTX 780M	3.0
    GeForce GTX 770M	3.0
    GeForce GTX 765M	3.0
    GeForce GTX 760M	3.0
    GeForce GTX 680MX	3.0
    GeForce GTX 680M	3.0
    GeForce GTX 675MX	3.0
    GeForce GTX 675M	2.1
    GeForce GTX 670MX	3.0
    GeForce GTX 670M	2.1
    GeForce GTX 660M	3.0
    GeForce GT 755M	3.0
    GeForce GT 750M	3.0
    GeForce GT 650M	3.0
    GeForce GT 745M	3.0
    GeForce GT 645M	3.0
    GeForce GT 740M	3.0
    GeForce GT 730M	3.0
    GeForce GT 640M	3.0
    GeForce GT 640M LE	3.0
    GeForce GT 735M	3.0
    GeForce GT 635M	2.1
    GeForce GT 730M	3.0
    GeForce GT 630M	2.1
    GeForce GT 625M	2.1
    GeForce GT 720M	2.1
    GeForce GT 620M	2.1
    GeForce 710M	2.1
    GeForce 705M	2.1
    GeForce 610M	2.1
    GeForce GTX 580M	2.1
    GeForce GTX 570M	2.1
    GeForce GTX 560M	2.1
    GeForce GT 555M	2.1
    GeForce GT 550M	2.1
    GeForce GT 540M	2.1
    GeForce GT 525M	2.1
    GeForce GT 520MX	2.1
    GeForce GT 520M	2.1
    GeForce GTX 485M	2.1
    GeForce GTX 470M	2.1
    GeForce GTX 460M	2.1
    GeForce GT 445M	2.1
    GeForce GT 435M	2.1
    GeForce GT 420M	2.1
    GeForce GT 415M	2.1
    GeForce GTX 480M	2.0
    GeForce 710M	2.1
    GeForce 410M	2.1
    
    Jetson AGX Xavier	7.2
    Jetson Nano	5.3
    Jetson TX2	6.2
    Jetson TX1	5.3
    Tegra X1	5.3

     

    展开全文
  • 计算机组成原理

    万次阅读 多人点赞 2019-06-02 14:13:55
    显示器有专门显示接口(集成或独立显卡)连接CPU或主存,键盘和鼠标也通过集成接口连接CPU。此外还配置集成网卡和声卡。 (4)USB多种连接接口实现网络与多媒体连接。整个系统采用多级总线结构组成。 4.CPU的性能...

    知识改变命运,储备成就未来。

    计算机组成原理

    1.第一台电子计算机何时何地诞生?英文全称?
    1946年2月14日 美国宾夕法尼亚大学
    ENIAC:电子数字积分计算机
    Electronic(电子的) Numerical(数字的) Integrator(综合者) And Calculator(计算器)

    2.冯·诺依曼型计算机组成、思想?
    计算机组成:
    运算器、控制器、存储器、输入设备、输出设备。
    思想:
    采用二进制的形式表示数据和指令,将数据和指令事先保存在存储器中,按照顺序执行程序来控制计算机工作运行。

    3.现代计算机硬件系统与冯·诺依曼型计算机组成有什么不同?
    相同点:
    现代计算机仍是冯·诺依曼体系结构。
    不同点:组成形式改变很大
    (1)逻辑元件组装成电路高度集成,把运算器、控制器集成到一块CPU芯片上。
    (2)存储器分为三级:高速缓冲存储器Cache,主存储器(内存),外部存储器;
    其中Cache现在都集成在CPU里,主存由内存条卡实现,外部存储器主要有机械硬盘、固态硬盘等;
    (3)输出与输入设备主要有显示器、鼠标、键盘。
    显示器有专门显示接口(集成或独立显卡)连接CPU或主存,键盘和鼠标也通过集成接口连接CPU。此外还配置集成网卡和声卡。
    (4)USB多种连接接口实现网络与多媒体连接。整个系统采用多级总线结构组成。

    4.CPU的性能公式、性能指标,如何评价?
    性能公式:
    一个程序的CPU时间 (指令周期)= 指令数/程序 × CPI × 时钟周期
    性能指标:
    (1)主频:也就是CPU的时钟频率,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。
    (2)外频,CPU的基准频率,CPU的外频决定着整块主板的运行速度。
    (3)总线频率直接影响CPU与内存直接数据交换速度。
    (4)位和字长

    在计算机系统中,数值一律用补码来表示(存储)。

    5、相对于原码补码表示有什么好处?

    1. 可以将符号位和其它位统一处理,减法运算转换成加法运算,简化运算。
    2. 无正零和负零之分,补码机器0就是真值0。
    3. 另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

    6.移码与补码在形式上有什么异同?
    符号位取反,其他数值位不变。
    如: +101 1111 -101 1111
    补码为 0101 1111 1010 0001
    移码为 1101 1111 0010 0001

    7.英文字母的编码是什么?占几个字节?
    7位ASCII(美国信息交换标准代码 ),占1个字节。

    8.国标码用于表示什么?如何表示与存储?
    国标码用于表示汉字,每个汉字占用2个字节,四位十六进制数表示。
    在计算机内部,存储时要转换成机内码,转换方法:
    34 73 +80 80 = B4 F3

    习题:
    1、写出十进制数-35的8位补码定点数

    X= - 35D = - 10 0011B
    [X]原 = 1010 0011B;高位补0,符号位负数为1
    [X]反 = 1101 1100B;除符号位,其余各位取反
    [X]补 = 1101 1101B;反码+1
    补码的存储格式:11011101

    2、写出十进制数(-49/64)的8位补码定点数。
    (-49/64)D=[- (110001)/(1000000)]B=-(0.1100010)B
    真值:-1100010
    原码:11100010
    补码:10011110
    补码的存储格式:10011110

    3、写出8位补码(B6)H所对应的定点整数十进制真值。(提示:补码的补码为原码)
    补码:(B6)H=(10110110)B
    反码:11001001
    原码:11001010
    真值:(-1001010)B=(-74)D
    整数十进制真值为:(-74)D

    4、将十进制数(-86/128)D表示成32位的754 标准浮点数。
    (-86/128)D=[(-1010110)/(10000000)]B=(-0.1010110)B=-1.01011*2的-1次方
    S(符号位)1位:负数为1
    E(实际指数)8位:E=e+127=126D=(01111110)B
    M(尾数小数部分)23位:01011
    【提示:E(实际指数)=e(有偏移指数)+127(偏移值)】
    标准浮点数SEM为:1011 1111 0010 1100 0000 0000 0000 0000(一共32位)

    5、将32位的754 标准浮点数(C2FC0000)H表示成十进制数。
    (C2FC0000)H=(1100 0010 1111 1100 0000 0000 0000 0000)B
    S=1
    E=(10000101)B=(133)D
    M=11111000000000000000000
    十进制数=(-1)S次方×(1+M)×2(E-127)次方
    =-1×1.11111×2*6次方
    =-11111110
    =-126D
    【提示:为什么1+M?前面的“1”从隐含位而来;e=E-127;】
    所以该浮点数十进制为:-126D

    9.存储器的功能及主要技术指标
    存储器的功能:
    存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。
    主要技术指标:
    (1)存储容量:一个存储器中可以容纳的二进制存储位总数。
    (2)存取时间:又称存储访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。
    (3)存储周期:连续两次独立的存储器操作(如连续两次读或写操作)所需间隔的最小时间。
    (4)存储器带宽:存储器在单位时间内的数据传输速率。

    10.存储器(Memory)为什么要分层?主存、辅存、Cache?
    为了解决大容量、高速度、低成本的均衡,所以才将存储系统分为各个层次,
    让需要高速度的用贵的存储器,让需要大空间的用便宜的存储器,主要利用了程序局部性原理,大大的提高了主存的效能。
    主要两个层次:cache和主存、主存和辅存,其实这两种分层方式都是为了服务于主存从而提高计算机整体的存取速度。

    11、三级存储器层次结构
    (1)主存(Main Memory):存储当前需要执行的程序和数据,直接与CPU通信。
    (2)外存/辅存(Auxiliary Memory):提供备份存储,不能与CPU直接通信。如:固态硬盘
    (3)Cache(Very-high-speed memory):用于补偿主存的访问速率与CPU的执行速率之间的差异。

    12.SRAM如何存储信息?DRAM如何存储信息?
    DRAM利用电容存储信息,DRAM 只能将数据保持很短的时间,为了保持数据,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。
    SRAM利用晶体管的状态存储信息,内部基本单元电路是触发器(flip-flops),只要有电源,就可以长久保存信息。
    【DRAM(dynamic random access memory[即动态随机存取存储器])–最为常见的系统内存
    SRAM(static random access memory[静态随机存取存储器])】

    13.比较SRAM与DRAM
    前者使用方便,读写周期较短;
    后者功耗小,单个存储芯片存储容量大。

    习题:
    6、哪种逻辑运算可用来清“0”数据位?
    逻辑与(&)用来清“0”数据位;
    哪种逻辑运算可以用来置“1”数据位?
    逻辑或(|)用来置“1”数据位。

    7、ALU是运算器的核心部件,它主要完成什么操作?
    ALU主要完成加、减法等算术运算及逻辑与、或、非、异或等逻辑运算功能。

    8、说明程序和数据在Cache、主存、辅存中的存储分配
    (1)Cache中保存CPU近期最频繁执行的程序和数据;
    (2)主存保存将被或正在被CPU执行的程序和数据,包括Cache中的部分;
    (3)那些不被CPU执行的程序和数据保存在辅存中(当然主存中的程序和数据也在辅存中)。

    9、上述三个存储器以谁为中心?
    以主存为中心。

    14、比较RAM与ROM的异同
    相同点:
    访问方式相同,都是随机访问。
    不同点:
    RAM是可读可写的存储器芯片,ROM是只读(不写)的存储器芯片;
    RAM是易失的,断电其存储的信息就失去了;ROM是非易失的,断电后再次上电,存储的信息不会改变;
    RAM存放大部分程序和可以修改的数据;ROM存储永久性驻留的程序及随计算机出厂就固定的参数。

    15、bootstrap loader是什么程序?存储在什么存储芯片中?
    bootstrap loader是引导装载程序;是上电后首先执行的程序;存储在ROM中。

    以PC机为例说明它在计算机中起什么作用?
    PC机中称之为BIOS,开机的执行,由它来将磁盘上的操作系统引导程序装载RAM主存的固定位置,然后将控制权转交给操作系统引导程序,完成操作系统的引导。

    问题:
    1、为什么需要存储器容量扩展?位容量与字容量扩展有什么不同?
    存储器容量扩展是解决芯片容量与系统容量匹配问题。
    当芯片数据线位数少于系统数据位数时,需要位扩展;单芯片地址位数少于系统地址位数时。需要字扩展。

    2、计算机字长16位,其存储容量为32MB,若按双字编址,它的寻址范围是多少?
    寻址范围是:32M×8位(字节)/32位=8M
    000 0000 0000 0000 0000 0000—111 1111 1111 1111 1111 1111

    3、某SRAM芯片,其存储容量为64K×16位,该芯片的地址线和数据线数目各为多少?
    地址线:64K=26K=2*16次方
    地址线和数据线数目分别为:16,16。
    【提示:数据线数目=位数】

    4、设计一个容量为2KB的存储器需要几片128×8位的存储芯片? 画出其容量扩展框图。
    2K×8位/128×8位 = 211次方/27次方=2*4次方= 16
    需要16片

    第一片128×8位的存储芯片寻址范围是:
    000 0000 0000 ~000 0111 1111
    第二片: 000 1000 0000 ~000 1111 1111
    第三片: 001 0000 0000 ~001 0111 1111

    第十六片:111 1000 0000 ~111 1111 1111

    5、设计一个容量为16K×16位的存储器需要几片4K×8位的存储芯片? 画出其容量扩展框图。
    16K×16位/4K×8位=8
    需要8片扩展

    6、按照小端及大端存放规则,写出数据 12345678H在连续4个内存单元(00050H?00053H)中的存放结果。
    小端规则 大端规则
    0050 78 0050 12
    0051 56 0051 34
    0052 34 0052 56
    0053 12 0053 78

    内存地址 -> 0x1(最小存储地址) 0x2 0x3 0x4
    大端法 -> 12(最高有效字节) 34 56 78
    小端法 -> 78(最低有效字节) 56 34 12
    可见,大端法和小端法是相反的。大端法最高有效字节在前,小端法最低有效字节在前。

    问题:
    1.设置Cache的目的是什么?CPU如何访问Cache与主存?
    设置Cache的目的:
    为了提高CPU访问主存的速度,cpu速度太快,硬盘和内存的速度无法跟上,就必须弄出几级cache来暂存数据。
    否则,cpu把数据处理完毕,但硬盘上的数据和内存中的数据却还没有送达到cpu,导致cpu空转,影响整个系统的效率
    CPU如何访问Cache与主存:
    CPU发出访问主存的地址,Cache也同时收到,若目标数据在Cache中(命中)则Cache将先于主存把数据送往CPU,若Cache没命中则主存迟早会把目标数据送往CPU

    2.Cache的主要性能指标是什么?如何计算?
    主要性能指标:命中率
    设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有
    h=Nc/(Nc+Nm)

    3.主存与Cache的地址映射方式有哪几种?它们如何将主存的块映射到Cache块中?
    三种方式进行映射:直接、全相联、组相联 ?
    (1).全相联的映射方式—主存块可以拷贝到Cache任意块
    (2).直接映射方式—主存j块固定映射拷贝到Cache的i块
    (3).组相联映射方式 将Cache所有行分组,把主存块映射到Cache固定组的任一行中。即:组间模映射、组内全映射

    4.有一处理机,主存容量1MB,字长1B,块大小16B;Cache容量64KB,若cache采用直接映射,给出主存地址分段结构,并指出映射到cache同一块的2个不同的主存地址。
    解:根据题意:
    字长1B,块大小16B,16B/1B=24
    字号:4位
    块数= 64KB/16B=2
    16B/24B=212
    块号:12位
    Cache: 64KB=216B , 每个块大小16B=24B
    主存容量1MB,地址20位, 分区数=1MB/64KB= 220/216= 2*4
    标记:4位
    区号:标记位=4位(或直接20-12-4=4得出)
    主存地址:标记4位,块号12位,字号4位

    5.一台计算机按字节寻址,其内存为1M。数据块的大小是16个字节,Cache的大小是64K字节。采用两路组相联映射,给内存地址为F0010H和CABBEH两个地址对应的标记、组号和字号。
    解:按字节寻址,数据块为16个字节
    字号:16B/1B=24,4位
    采用两路组相联映射(每组内只有2块):64KB/2=32KB=2
    15B
    组号:15-4=11位
    内存为1M,地址20 位:20-11-4=5位
    标记位,区号:5位
    地址: 标记5位, 组号11位, 字号4位
    F0010H: 11110 00000000001 0000B
    CABBEH:11001 01010111011 1110B

    6.一个组相联Cache由64个块组成,每组4块(4路组相联)。主存储器包含4K个块,每块16个字。请表示主存地址格式。给内存地址为F001H和CABBH两个地址对应的标记、组号和字号。
    解:
    块大小16字=24字 ,字号=4位
    每组的块数=4
    组数= 64/4=16=2
    4 ,组号=4位
    主存的块数4K=2*12 ,标记=12-4=8位
    主存地址格式(16进制):
    标记 8位 组号4位 字号4位
    F001H F0 0 1
    CABBH CA B B

    问题:
    1.什么是指令系统?为什么说指令系统是计算机中软 件和硬件分界面?
    指令系统是计算机硬件的语言系统,也叫机器语言(Machine Language)。
    它的下面层次是硬件逻辑实现,上面层次是系统软件与应用软件。所以指令系统是一个软件和硬件分界面。

    2.什么是操作码?什么是操作数?
    操作码就是指令序列号,用来告诉CPU需要执行哪一条指令
    操作数(地址码 A)是操作码的操作对象。

    3.操作数为什么又被称为地址码?指令中常用的操作数的个数是多少?
    操作数字段的除了立即寻址直接给出操作数本身外,其他的绝大多数寻址方式都是直接或间接地给出操作数地址或地址索引。所以称之为地址码。
    指令中常用的操作数的个数是:三个、二个、一个及零个。

    4.指令中的操作数通常来源于哪里?
    来源于:
    (1)立即数—操作数即指令代码中的地址码部分;
    (2)寄存器—操作数在寄存器中(即指令代码中的地
    址码部分所指出的寄存器中的内容);
    (3)内存单元—操作数在内存单元中(即指令代码中
    的地址码部分所指出的内存单元中的内容);
    (4)I/O端口(I/O接口中存放信息的寄存器—操作数在
    I/O端口中)。

    1. 哪种操作数寻址方式能最快得到操作数?哪种最慢得到操作数?
      立即寻址方式取出指令立即得到操作数,所以最快;
      间接寻址方式取出指令后还需要两次访问存储器才能得到操作数,所以最慢。

    习题:
    1.寄存器寻址与寄存器间接寻址有什么不同?请根据实验计算机指令说明之。
    操作数位置与寻址过程不同。
    例如:
    (1)MOV A,R1 ;R1指示寄存器寻址,操作数在R1中;
    寻址过程是直接用R1访问寄存器得到操作数;
    (2)MOV A,@R1 ;@R1指示寄存器间接寻址,操作数在主存中;
    寻址过程用R1访问寄存器得到操作数的主存地址,然后用该地址访问存储器得到操作数。

    2.立即数寻址与直接寻址在汇编指令形式上有什么不同?他们的操作数都源于哪里?请根据实验计算机指令说明之。
    立即寻址要在操作数前面加上标记:#
    如:
    MOV A,#01H ; #01H 就是立即寻址,操作数就在指令中;
    直接寻址要直接给出主存地址
    如:
    MOV A,01H ; 01H 是直接寻址,操作数在01H指向的存储单元中。

    3.零地址指令是否有操作数?如果有,操作数采用何种寻址方式?请解释这种寻址方式。
    零地址指令可以有,也可以没有操作数,视指令功能需求而定。如果有操作数,该操作数采用隐含寻址方式,这种寻址方式操作数的位置是固定的,比如在累加器、在堆栈里面。通过操作码确定具体位置。
    如:
    NOP 是空操作,就没有操作数;
    IN 是输入指令,两个操作数一个在输入寄存器里,一个在累加器里。

    问 题:
    1.基本的指令类型有哪些?实验计算机指令集都有哪些类指令?
    (1) 数据传送类指令
    (2) 运算类指令
    (3) 程序控制类指令:跳转指令、分支指令、子程序调用返回、中断系统
    (4) 输入和输出指令
    (5) 其他指令: 空操作NOP或者软件的调试

    2.RICS与CISC各有什么特点?
    CISC:复杂指令计算机
    (1)指令系统复杂庞大,各种指令使用频度相差大;
    (2)指令长度不固定、指令格式种类多、寻址方式多;
    (3)访存指令不受限制。

    RISC:精简指令集计算机
    (1)选用使用频度较高的一些简单指令,复杂指令的功能由简单指令来组合;
    (2)指令长度固定、指令格式种类少、寻址方式少;
    (3)只有 LOAD / STORE 指令访存。其余指令的操作均在寄存器之间进行。

    3.实验计算机的有2个标志位RCy和Rz,各代表什么含义?那类指令的执行会对它们起作用?
    RCy:CPU的累加器ACC直通门进位表示位
    Rz: CPU的累加器ACC直通门的清零标志位

    4.处理器的主要功能?
    (1)处理指令(Processing instructions)
    (2)执行操作(Perform an action):根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。
    (3)控制时间(Control time):对各种操作实施时间上的定时。
    (4)处理数据(Processing data):对数据进行算术运算和逻辑运算,或进行其他的信息处理。

    5.根据实验计算机各种指令的微操作执行过程分析,哪步微操作是所有指令都相同的还是必须的?那类指令操作影响标志位RCy和Rz,如何影响?
    M[PC]->IR :这步微操作是所有指令都相同且必须的;
    运算类会影响标志位RCy和Rz,有进位或者借位时标志位RCy为1,否则为0,运算后直通门数据为0时Rz为1,否则为0

    6.微操作执行过程依据什么分步?最长多少步?最短多少步?
    IR:存放从存储器中取出的指令
    最长4步;最短2步

    习题:
    以单微指令步骤运行下列指令,分析每一步微操作的相同与不同。有PC+1操作的指令字长与没有的有区别吗?
    有PC+1操作的指令是双字指令,没有这个操作的是单字指令

    1.ADD A,#12H的微指令分为3步
    指令地址 机器码 汇编码
    00 1C12 ADD A,#12H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC]→W
    (3)A+W→D→A ?

    2.MOV A,#20H的微指令分为2步
    指令地址 机器码 汇编码
    02 7C20 MOV A,#20H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC]→A

    3.MOV R0,#60H的微指令分为2步
    指令地址 机器码 汇编码
    04 8C60 MOV R0,#60H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC]→R0

    4.MOV @R0,A的微指令分为3步
    指令地址 机器码 汇编码
    06 84 MOV @R0,A
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,(R0)→MAR
    (3)A→D→M[MAR]

    5.SUB A,60H的微指令分为4步
    指令地址 机器码 汇编码
    07 3860 SUB A,60H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC]→MAR
    (3)M[MAR]→W
    (4)A-W→D→A

    6.MOV R1,#30H的微指令分为2步
    指令地址 机器码 汇编码
    09 8D30 MOV R1,#30H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC+1]→R1

    7.SUB A,R1的微指令分为3步
    指令地址 机器码 汇编码
    0B 31 SUB A,R1
    微操作步骤
    (1)M[PC]→IR
    (2)R1→ W
    (3)A-W → A

    8.MOV A,#00H的微指令分为2步
    指令地址 机器码 汇编码
    0C 7C00 MOV A,#00H
    微操作步骤
    (1)M[PC]→IR
    (2)PC+1,M[PC]→ A

    9.ADDC A,R1的微指令分为3步
    指令地址 机器码 汇编码
    0E 21 ADDC A,R1
    微操作步骤
    (1)M[PC]→IR
    (2)R1→ W
    (3)A+W+Rcy → A

    1.计算机存储字长64位,存储容量为16GB,若按半字编址,求编址单元数目?
    解:存储字长64位,半字就是32位;16GB = 16G × 8位
    所求编址单元数目 = 16G × 8位 / 32位= 4G

    2.某SRAM芯片,其存储容量为1024K×16位,该芯片的地址线和数据线数目各为多少?
    解:1024K =1M = 220,
    所以地址线数目20;数据线数目为16。

    3.设计一个容量为256K×16位的存储器,可选存储器芯片为8K×8位。如何扩展?需要扩展的芯片数目各是多少?
    解:需要字、位双向扩展。
    字扩展的芯片数目 = 256K /8K = 32片
    位扩展的芯片数目 = 16位 /8位 = 2片

    4.有一处理机,主存容量64K块,块大小16个字;Cache容量4K块,若Cache采用直接映射,写出主存地址结构;并给出2个不同标记的内存地址,它们映射到同一个cache行。
    解:块大小16=24,字号位数=4位
    分区数=64K/4K =216/212=24,标记位数=4位
    Cache块数=4K=212,块号位数=12位
    主存地址结构(20位)为:标记4位,块号12位,字号4位
    主存地址60010H(标记6)与70010H(标记7)都映射到cache的001H块。

    5.输入输出方式有几种?都是什么方式?
    有4种方式,分别是:
    (1)无条件传送方式;(2)程序查询方式 ; (3)程序中断方式; (4)DMA方式

    1. 哪种方式是程序控制方式?哪种方式仅通过硬件控制输入输出?
      (1)、(2)、(3)方式是程序控制方式;(4)方式仅通过硬件控制输入输出。

    2. 查询方式如何实现?有什么缺点?
      查询方式传送前,CPU必须先对外设进行状态检测。缺点是耗费CPU时间,外设多的情况CPU轮番查询更耗时,响应速度也不及时。

    8.程序查询方式与程序中断方式的主要区别是什么?
    前者CPU主动查询I/O接口;后者I/O接口主动请求CPU。

    9.中断方式与DMA方式在控制I/O数据传输方面的的主要区别是什么?
    前者通过中断服务程序控制I/O数据传输,一次传 送一个数据字;后者以硬件方式由DMA控制器直接控制I/O 数据传输,一次可以传送一个数据块。

    10.试比较中断方式与DMA方式的优缺点。
    前者优点是软件控制,不局限于I/O数据传输,可以应用到任何随机突发事件;缺点是I/O数据传输较慢。后者的优点是I/O数据传输较快;缺点是硬件控制只局限于I/O数据传输。

    11.何谓中断向量?
    中断向量即中断服务程序的入口地址。在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。

    12.列举引发中断的三种事件?操作系统的多任务调度靠哪种实现
    如I/O中断、定时中断、控制台中断等。操作系统中的多任务调度靠定时中断实现。

    13.中断处理通过硬件还是软件实施,分为哪4个步骤?
    中断处理过程通过软件实施,大致分为四个阶段:
    (1)保存被中断程序的现场;(2)分析中断原因;
    (3)转入相应处理程序进行处理;
    (4)恢复被中断程序现场(即中断返回)

    14.按照总线传输的信息,总线可分为哪三类?
    按照所传输信息的性质分类:
    地址总线 (单向)
    数据总线 (双向)
    控制总线 (双向)

    15.总线的性能指标与什么因素有关?何谓总线带宽?如何计算?
    与总线的位宽、总线的时钟频率及总线的数据传输速率相关。
    总线的最高数据传输速率称为总线带宽。
    总线带宽=总线位宽×总线工作频率/8

    16.为什么总线上的部件常常需要与三态逻辑门连接?
    为解决总线上连接的部件发送冲突问题,总线与其上所挂的部件在物理是连通的,但是从逻辑上有输入、输出、断开三种状态, 所以连接总线上的部件需要通过三态逻辑门接口与总线连接。

    展开全文
  • GPU通用计算编程

    千次阅读 2018-05-29 21:35:59
    GPU通用计算通常采用CPU+GPU异构模式,由CPU负责执行复杂逻辑处理和事务处理等不适合数据并行的计算,由GPU负责计算密集型的大规模数据并行计算。 OpenCL(Open Computing Language,开放运算语言)是第一个面向异构...
  • 计算机组成原理-基本组成

    千次阅读 多人点赞 2019-09-18 15:12:34
    显卡之所以特殊,是因为显卡里有除了 CPU 之外的另一个“处理器”,也就是GPU(Graphics Processing Unit,图形处理器),GPU 一样可以做各种“计算”的工作。 3 冯·诺依曼体系结构   冯·诺依曼(John von ...
  • 一张是gtx titan x 一张是老旧的gt640 通过运行cuda程序发现时间相差8倍。 想通过硬件参数来比较其计算能力 或者应该如何确定8倍的时间已经是用上了所有的显卡算力, GPU利用率?什么的 有没有人给我点意见,谢谢
  • 转码解密挖矿 显卡计算能力大对比

    千次阅读 2019-02-01 12:04:00
    GPU通用计算发展势头迅猛 泡泡网显卡频道8月27日现在的显卡市场,同质化已经严重到了什么地步呢?不仅仅是板卡厂商之间的显卡性能基本没区别,而且同价位的N卡和A卡在不同游戏中的表现也是难分胜负,让游戏玩家...
  • 非常好用的EWSA跑字典工具(支持显卡计算
  • win10下基于anaconda利用keras开展16系显卡GTX1650的GPU神经网络计算 虽然安装了双系统,但ubantu的确是不太常用,所以还是尝试一下win10下的GPU神经网络计算。从实践看,大体步骤与ubantu下一致,下面进行详细介绍...
  • 利用GPU对matlab仿真进行加速的方法
  • 如今研究人工智能,跑深度学习算法,显卡/GPU绝对是第一大门槛,所以不管您是1080Ti还是V100,如果不能发挥出GPU的最大能力,那它可能就是不是显卡而是块普通的砖头了吧。 显卡爆炸 显卡爆炸和内存的使用紧密相连,...
  • 准备阶段: Anaconda 3(官网下载) python3.x(Anaconda3自带) GPU(最低NVDIA GTX 650) tensorflow-gpu(Anaconda中安装) tensorflow基本语法操作 代码测试 写一个手动调用gpu设备的代码 ...
  • 显卡和异构计算

    千次阅读 2021-05-06 21:23:17
    显卡:将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示,是连接显示器和个人计算机主板的重要组件,是“人机”的重要设备之一,其内置的并行计算能力现阶段...
  • 检测tensorflow是否使用gpu进行计算

    万次阅读 多人点赞 2017-10-29 23:10:56
    import tensorflow as tf sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))查看日志信息若包含gpu信息,就是使用了gpu...其他方法:跑计算量大的代码,通过 nvidia-smi 命令查看gpu的内存使用量。
  • 深度学习中我们对GPU的计算能力一般是要求大于5.0,具体情况具体分析,低于5.0也并非一定不可以。 那为啥不用CPU?...另附英伟达显卡计算力官网查询地址: NVIDIA GPUs Compute Capability 英伟
  • GPU通用计算发展势头迅猛  泡泡网显卡频道8月27日 现在的显卡市场,同质化已经严重到了什么地步呢?不仅仅是板卡厂商之间的显卡性能基本没区别,而且同价位的N卡和A卡在不同游戏中的表现也是难分胜负,让...
  • 利用GPU实现通用计算

    千次阅读 2005-09-29 16:37:00
    这几天正在研究神经网络,但是背无比缓慢的计算速度折磨的痛苦不堪,但是口袋空空不能换机器,所以想到不玩游戏的时候显卡正闲的没事干,所以折磨完CPU后转而折磨GPU起来。 GPU计算当然不能凭空做起,否则要非常...
  • 计算机底层是如何访问显卡的?

    千次阅读 2016-06-16 10:29:15
    1. 显卡驱动是怎么控制显卡的, 就是说, 使用那些指令控制显卡, 通过端口么? 2. DirectX 或 OpenGL 或 CUDA 或 OpenCL 怎么找到显卡驱动, 显卡驱动是不是要为他们提供接口的实现, 如果是, 那么DirectX和OpenGL和CUDA...
  • 利用OpenGL的Geometryshader计算三角形的法线。都知道OpenGL本来要自己定法线,在一些特殊状况,如地形图,我们可以直接在GPU用GeometryShader来求,而不需要CPU计算好再传法线数据给GPU。这里算的不是Smooth平滑的...
  • NVIDIA GPU的浮点计算能力

    千次阅读 2020-01-13 14:15:52
    ​​其实说到浮点计算能力,首先得区分不同精度的浮点数,虽然Linpack测试里只关心双精度的浮点计算能力,但在其他领域,有时候反而会更加关注单精度甚至是半精度的浮点计算能力。 半精度、单精度、双精度这些概念...
  • 显卡计算人工智能(AMD最新DX10.1 DEMO)

    千次阅读 2008-12-06 23:58:00
    利用Tesselation,DEMO还提供了三个细节等级(LOD),会显示不同数量的Foblin和不一样的山脉。(Tesselation将是未来DX11的子集。)   另外整个场景中只有太阳这一个光源,所以结合高级光照技术,被高山投影遮挡...
  • Matlab使用:使用GPU加速计算

    千次阅读 2020-02-21 22:50:55
    Matlab程序的运行效率,很大程度上决定着科研工作的效率。在Matlab中,将多重循环变为矩阵运算无疑是效率最高的方法。如果机器有**NVIDIA**的显卡,那么可以通过GPU进一步提高程序的运行效率。
  • Windows圆周率计算工具

    2020-06-18 14:56:35
    基于OpenCL的圆周率计算工具,可用于GPU性能测试,支持nVidia、AMD、Intel等厂商GPU、CPU。GPi可充分利用GPU强大的并行计算能力。 操作简单,一键开始,使用主流显卡可在3秒内算得Pi小数点后100万位。
  • 左边的是当层数较小时,不用1* 1的卷积核来降低参数量和计算量,后面的是在50,101,152层的网络中,用1* 1 的卷积核来降低参数量和计算量。 在ResNet中,除了跳连结构之外,它还采用了BatchNormalization批归一化...
  • 提示:本篇文章是为解决显卡利用率低CPU利用率高 文章目录前言一、找原因二、修改内存频率1.进入BIOS2.修改内存频率3.分析原因总结 前言 最近也是要上大学了,自己在网上学着配了一台主机,方便在寝室和好基友们开...
  • 计算机组成原理 — GPU 图形处理器

    万次阅读 多人点赞 2019-08-12 19:32:44
    文章目录目录显卡GPUCPU 与 GPU 的区别GPU 的架构CUDA 编程模式CUDA 的架构利用 CUDA 进行多并发编程的原理虚拟机显卡的实现方式虚拟显卡显卡直通物理显卡虚拟化KVM 虚拟机通过 PCI Pass-through 使用 NVIDIA 显卡 ...
  • js面试题

    千次阅读 多人点赞 2019-04-09 19:42:32
    显示(Painting):通过显卡把页面画到屏幕上 DOM 树 和 渲染树 的区别: DOM 树与 HTML 标签一一对应,包括 head 和隐藏元素 渲染树不包括 head 和隐藏元素,大段文本的每一个行都是独立节点,每一个节点都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,339
精华内容 10,535
关键字:

如何利用显卡计算