当前位置:首页 > cuda
  • 为安培架构优化,NVIDIA正式发布CUDA 11工具包

    为安培架构优化,NVIDIA正式发布CUDA 11工具包

    NVIDIA是GPU加速领域最强平台之一,近日了发布全新的CUDA 11版本工具包,特别为新诞生的安培架构进行了优化。 CUDA 11完全支持在安培新架构上进行开发,包括A100 GPU,以及基于它的DGX A100、HGX A100等多路系统,并支持安培架构的第三代Tensor张量核心,可针对不同数据类型加速混合精度矩阵计算,比如TF32、Bfloat16。 其他新技能: - 多实例GPU虚拟化和GPU分区,提升GPU利用率 - 优化库性能,包括线性代数、快速傅里叶变换(FFT)、矩阵乘法、JPEG解码等等 - 改进编程与API,包括任务图表、异步数据转移、精细同步、二级缓存驻留管理等等 - 增强Nsight开发工具集,包括跟踪、编译、调试分析 - 完整支持各种主要CPU架构,包括x86、ARM64、Power - CUDA C++改进编译器性能和稳定性、支持新的主编译器和语言标准(包括C++17)、支持Parallel C++ STL 想要这款工具包的可以下载去用了。

    时间:2020-05-21 关键词: NVIDIA 11 cuda

  • NVIDIA、苹果彻底决裂:CUDA不再支持macOS

    NVIDIA、苹果彻底决裂:CUDA不再支持macOS

    NVIDIA和苹果的关系一直很糟糕,十几年没有过合作,现在双方的最后一丝关系也破裂了。 NVIDIA今天公布了CUDA并行计算开发平台的更新规划说明,其中特别提到,CUDA 10.2(包括工具包和驱动)将是最后一个支持苹果macOS系统开发、运行CUDA程序的版本,未来CUDA将与苹果平台无关。 十多年前,一批采用NVIDIA GPU显卡的苹果MacBook Pro笔记本出现瑕疵,双方为此向客户赔偿了一大笔钱,并且闹得非常不愉快,从此苹果无论笔记本还是台式机,一律只用AMD显卡。 即便是NVIDIA显卡更流行,性能更好,技术更先进,苹果也从未考虑过,比如现在NVIDIA已经支持硬件加速光线追踪,AMD还得等一段时间,苹果也绝不动摇。 当然,AMD也是竭力服务苹果,提供各种定制产品,比如最新的RX 5500M移动显卡就是由苹果16英寸MacBook Pro首发的。 其实,苹果在去年的macOS 10.14 Mojave版本中就悄然停止了对于NVIDIA CUDA的支持,迫使Adobe创意套装等支持CUDA硬件加速的软件不得不提醒用户,不要再开启此功能。 既然苹果已经绝情,NVIDIA也没必要继续维持,终止CUDA对于苹果的支持也在意料之中。

    时间:2019-12-19 关键词: NVIDIA 苹果 macos cuda

  • 攀升i5 9400F/GTX1060:1408个CUDA核心

    攀升i5 9400F/GTX1060:1408个CUDA核心

    这篇文章中,小编将为大家介绍一款游戏电竞主机——攀升i5 9400F/GTX1060。它的具体情况如何呢?一起来看看吧。 这款主机选用了当今市场上中高端处理器的销量王——Core i5-9400F,其采用6核心6线程设计,主频为2.9GHz,单核最大睿频为4.1GHz,拥有9MB三级缓存,应对当今3A大作游刃有余。 显卡方面,这款游戏主机目前限量免费升级至GeForce GTX 1660,其拥有1408个CUDA核心,搭载6GB GDDR5高速显存,游戏性能不凡,搭配Core i5-9400F使用可谓珠联璧合,轻松助你畅玩当今主流游戏大作。此外,该主机的配件均选用了一线品牌产品,除了能够提供出色的性能之外,还能够提供不错的散热性能和静音表现,助你游戏过程更舒心。 经由小编的介绍,不知道你对这款游戏主机是否充满了兴趣呢?如果你想进一步了解攀升i5 9400F/GTX1060,不妨尝试度娘更多信息哦。

    时间:2019-11-18 关键词: 攀升 cuda 攀升i5 9400f/gtx1060

  • CUDA支持ARM实现百亿亿次超算:NVIDIA和ARM的好机会?

    CUDA支持ARM实现百亿亿次超算:NVIDIA和ARM的好机会?

    超级计算机(Supercomputer)通常简称超算,在科学界常被视作一个国家技术领军能力的指标,因为它能够为AI、空气动力、大气科学、能源科学等重要技术的研究提供算力支撑。如今强国之间的竞争已经进入到了百亿亿次级超算的时代,这就需要更强大的处理器。目前,X86、Power作为超算CPU计算节点的主要架构,那么NVIDIA宣布CUDA支持ARM谁将是最大的赢家?超算竞争进入百亿亿次级时代去年六月,美国能源部公布了世界上最快的超级计算机—;—;Summit,反超中国超算太湖之光重夺超算Top 500第一的位置,并且美国表示他们预计在2021年建造一台每秒运算数十亿亿次计算机“极光(Aurora)”,甚至会打造更高效能的计算机。2019超算Top 500当然,中国也在建立一个百亿亿次级超级计算机系统,有消息称它基于已构建的三种原型系统:曙光、天河和神威。日本和欧洲也不甘落后,日本希望在2021年有一台百亿亿次级的超级计算机,欧洲人则在希望在2023年实现这一目标。显然,超级计算机的竞赛跨入了Exascale计算(百亿亿次级的计算,也可称E级超算)时代。用一个不精确的说法来解释百亿亿次级计算,一个百亿亿次级计算机一瞬间进行的计算,相当于地球上的所有人每天每秒都不停地计算四年。这样强大的计算能力需要更加复杂的系统。与普通计算机一样,超算同样由硬件和软件系统组成,但超算仅硬件部分就由高速运算系统、高速互连通信网络系统、存储系统、维护监控系统、电源系统、冷却系统和结构组装设计等部分组成。其中,高速运算系统负责逻辑复杂的调度和串行任务和并行度高的任务,可采用同构计算(纯CPU组成计算节点),也可以采用异构计算(CPU+加速器组成计算节点)的方式。实现百亿亿次级超算的新途径根据国际组织TOP500编制的超级计算机榜单,从2019年度ISC国际超算大会上公布的超算性能500强榜单中,我们不难发现IBM Power、NVIDIA Volta/Tesla、Intel Xeon显然是超算计算节点的重要组成。2019年度ISC国际超算大会上公布的超算Green500但是,随着算力的进一步增强,超算产生的热量不仅会造成更多的资源消耗,冷却系统的设计同样面临更大的挑战,因此没瓦特性能也十分重要。TOP500也编制了一个Green500的超算排行榜,这个排行榜比拼的不是性能,而是比拼每瓦性能,所以,即便某个超算在TOP500榜单中垫底,在Green500中却获得好名次。根据最新的Green500排行榜,在全球最节能的25款超级计算机中,有22款都得益于NVIDIA的支持。这其中的关键之一就是采用了异构计算的方式,让x86或者Power架构的CPU与NVIDIA GPU协同,把繁重的处理作业卸载至更为节能的并行处理CUDA GPU之上。不过在CPU市场,ARM架构也不可忽略,那么在超算的百亿亿次级竞争中,ARM CPU是否也能发挥优势?现在下结论还为时尚早,但英伟达并不打算错过这个可能的机会。6月17日,2019年度ISC国际超算大会上,NVIDIA宣布将于年底前向ARM生态系统提供全堆栈的AI和HPC软件,该堆栈为600多个HPC应用程序和所有AI框架提供加速,其中包括了所有NVIDIA CUDA-X AI和HPC库、GPU加速的AI框架和软件开发工具,如支持OpenACC的PGI编译器和性能分析器。这也就意味着,在NVIDIA的堆栈优化完成之后,NVIDIA将为所有主要CPU架构提供加速,包括x86、Power和ARM。对于新的宣布,NVIDIA创始人兼首席执行官黄仁勋表示:“超级计算机是促进科学发现的重要工具,建立百亿亿次级超级计算将能够极大地扩展人类知识的边界。随着传统计算规模扩展步伐的停止,功率也将成为所有超级计算机的限制因素。NVIDIA CUDA加速的计算和ARM的高能效CPU架构的相结合,将助力HPC社区实现大幅提升,以达到百亿亿次级。”NVIDIA的好生意从百亿亿次级超算建造者的角度看,ARM CPU+NVIDIA GPU是一个新选择,但从NVIDIA的角度看,CUDA支持ARM不是一个简单的宣布,而是资源的投入。让NVIDIA有动力进行这样的投入,是各国和巨头公司们的需求和投入。仅美国方面,下一代超算技术的研发总投入将达到4.3亿多美元,美国能源部部长里克?佩里就表示,这些资金剑指“下阶段研发百亿亿次系统的全球竞赛”。显然,百亿亿次级超算的构建少不了NVIDIA的GPU,特别是AI技术蓬勃发展并且越来越重要的当下。此时NVIDIA又联合ARM为构建百亿亿次级超算提供了新的途径,自然能让其从超算市场获得更多的营收。NVIDIA的在超算市场的努力不止CUDA支持ARM,NVIDIA在2019年度ISC国际超算大会上还宣布了全球速度排名第22位的超级计算机—;—;DGX SuperPOD。根据NVIDIA的说法,该超级计算机系统采用了96台NVIDIA DGX-2H超级计算机,内含1536颗NVIDIA V100 Tensor Core GPU,由NVIDIA NVSwitch及 Mellanox网络结构相联接。其处理能力高达9.4 petaflops,能够用于训练安全自动驾驶汽车所需要的海量深度神经网络。对比来看,具备同等性能的其他TOP500超级计算机系统需要由数千台服务器构建,而DGX SuperPOD占地面积更少,体积比同等系统小400倍左右。部署方面,其他同等规模的系统通常需要6-9个月才能完成部署毕,DGX SuperPOD在工程师采用经过验证的规范性方法情况下,仅需3个星期。据雷锋网(公众号:雷锋网)了解,NVIDIA DGX系统已经服务于众多对大规模计算有需求的企业机构,例如宝马、Continental、福特与Zenuity 等汽车公司,还有Facebook、微软与富士胶片等公司,还有研究领域的日本理化学研究所与美国能源部实验室等。NVIDIA希望还没有部署人工智能的数据中心的企业机构使用NVIDIA SuperPOD架构。这可以让双方都从中获益,不止于此,NVIDIA还能通过构建这样的超级计算机,可以学会如何设计面向大规模人工智能机器的系统。显然,超算特别是百亿亿次超算对NVIDIA是可以多赢的好生意。ARM的好机会对于ARM而言,百亿亿次级超算市场则是一个好机会。在移动市场占据领导地位的ARM遇到市场增长放缓时,同样也希望能够将其架构拓展到新的市场带来增长,近年来也在努力联合合作伙伴推动ARM服务器的发展,不过情况并不理想。但在超算市场,特别是CUDA支持ARM之后,ARM能够迎来了好机会。Atos高级执行副总裁、大数据和网络安全部门负责人Pierre Barnabé表示:“凭借万宝龙项目,以及为百亿亿次级超级计算机BullSequana X所做的ARM计算刀片设计,Atos成为了ARM生态系统中的先驱者。”全球重要的超算提供商Cray总裁兼首席执行官Peter Ungaro表示:“我们的Cray系统管理和编程环境(编译器、库和工具)已经能够在XC和未来的Shasta超级计算机上支持ARM处理器,将CUDA和CUDA-X HPC和AI软件堆栈用于ARM平台,并将其与Cray系统管理和编程环境紧密集成,能够助力我们的超级计算机实现我们的愿景。”另外,Ampere Computing、CSC、EPI、HPE、Jülich超算中心、Marvell等都表达了对于CUDA支持ARM的期待。同时还要看到,CUDA支持ARM能够建造百亿亿次级超算,同样也能让服务器厂商更便捷地制造ARM服务器,所以,ARM的好机会是让其能够更好的拓展架构优势。小结百亿亿次级超算系统是各国努力正在打造的新一代超算,此时,英伟达CUDA支持ARM给正在打造新一代超算的国家以及对算力有更高需求的企业一个新的选择,这既是英伟达能够多赢的好生意,更是ARM进入超算市场的好机会。现在有众多的支持者表态支持这一新路径,我们虽然对此也保持积极的态度,但结果仍需通过实际的百亿亿次级的超算系统来得出。创新不会百分之百成功,但创新才是推动革新的最大动力。

    时间:2019-07-16 关键词: NVIDIA ARM 超级计算机 cuda

  • cuda网格的限制

    cuda网格的限制

    限制于计算能力有关。只有一张图~

    时间:2019-07-08 关键词: cuda

  • CUDA command Profiler

    这里我不使用默认设置:timestamp gpustarttimestamp gpuendtimestamp gridsize threadblocksize dynsmemperblock stasmemperblock regperthread memtransferdir memtransfersize memtransferhostmemtype streamid localblocksize将上面的内容添加到一个新的文本文件中。假设这个文件叫prof.cfg假设你的程序是a.exe用下面的命令启动执行CUDA_PROFILE=1 CUDA_PROFILE_CONFIG=prof.cfg ./a.exe此时会有一个文件产生在你的目录下,打开看看吧。

    时间:2019-07-08 关键词: cuda

  • CUDA5.5 的环境变量设置

    为了方便,我写了这个文件用于设置cuda5.5的环境变量。其中有些环境变量可能用不到,大家根据需要修改就是了。 export CUDA_HOME=/usr/local/cuda-5.5 export CUDA_INC_PATH=${CUDA_HOME}/include export CUDA_LIB_PATH=${CUDA_HOME}/lib64 export CUDA_INSTALL_PATH=${CUDA_HOME} export PATH=${CUDA_HOME}/bin:$PATH export PATH=${CUDA_HOME}/computeprof/bin:$PATH export LD_LIBRARY_PATH=${CUDA_HOME}/computeprof/bin:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${CUDA_HOME}/extras/CUPTI/lib64:$LD_LIBRARY_PATH export MANPATH=${CUDA_HOME}/man:$MANPATH export OPENCL_HOME=${CUDA_HOME} export OPENCL_INC_PATH=${OPENCL_HOME}/include export OPENCL_LIB_PATH=${OPENCL_HOME}/lib64 export LD_LIBRARY_PATH=${OPENCL_LIB_PATH}:$LD_LIBRARY_PATH

    时间:2019-07-08 关键词: cuda

  • CUDA template kernel 与其他编译器合作编译

    简介在优化Kernel的时候,希望某些变量是常量,例如循环的次数相关的变量。如果次数限制是常量的话,编译器就可以将循环展开。展开的循环,会省掉一些判断,从而节省一些计算时间。C++的模版中可以使用常量。但是我又不想所有的源代码都由nvcc来编译(其实C++的代码还是调用的host compiler),故此,我写这篇博客来提供一种方法。代码实例实例中有三个文件: main.cpp用host compiler来编译。 cuda_interfaces.cu 用nvcc来编译。cuda_interfaces.h 是 cuda_interfaces.cu的接口头文件。// main.cpp #include#include "cuda_interfaces.h" int main(int argc, char** argv){     su::gpu_func();     su::gpu_func();     su::gpu_func();     su::gpu_func();     su::gpu_func();     su::gpu_func();     return EXIT_SUCCESS; }// cuda_interfaces.h #ifndef __CUDA_INTERFACES_H__ #define __CUDA_INTERFACES_H__ namespace su{     templatevoid gpu_func(); } #endif// cuda_interfaces.cu #include#include#includeusing namespace std; namespace su{     template__global__ void kernel_func(int *data)     {         int x = threadIdx.x + blockIdx.x*blockDim.x;         if (x < _s){             data[x] = _s;         }         else{             data[x] = 0;         }     }     templatevoid gpu_func()     {         int n_threads = 32;         int *h_data = new int[n_threads];         int *d_data = NULL;         cudaMalloc(&d_data, n_threads*sizeof(int));         kernel_func<<>>(d_data);         cudaMemcpy(h_data, d_data, n_threads*sizeof(int), cudaMemcpyDeviceToHost);         for (int i = 0; i < n_threads; i++){             cout << h_data[i] << " ";         }         cout << endl;         // release memory         delete[] h_data; h_data = NULL;         cudaFree(d_data); d_data = NULL;     }     // note _s only support 0,1,2,3,4,5     template void gpu_func();     template void gpu_func();     template void gpu_func();     template void gpu_func();     template void gpu_func();     template void gpu_func(); }上述代码执行结果如下:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0关键点完成在模版中使用常量的关键在于在.cu文件里的声明,告诉nvcc要编译哪几个常量的函数!Enjoy!

    时间:2018-11-20 关键词: C语言 cuda

  • 图文解说:配置CUDA程序编译环境,使得配置的工程能与VS的编译联合使用

    图文解说:配置CUDA程序编译环境,使得配置的工程能与VS的编译联合使用

    首先要安装 CUDA 8.0 和 VS 2013。最重要的是:请确保你有一张支持CUDA的显卡。特别注意:希望你的系统是64位系统。如果你是新手,在安装上面的软件的时候,能选择安装的内容尽可能的都选上。现在假设你已经安装好上面的软件了,我们下面来一步步的配置一个CUDA程序的编译环境,使得配置的工程能够与VS的编译联合使用。新建工程新建空项目,这一点可能很重要。主要的考虑是:  - 避免源代码依赖操作系统!  - 以及尽可能减少不可控因素。添加CUDA源代码编译器支持鼠标右击项目,按依次点击下图内容:添加C/C++源代码和CUDA源代码添加源代码很简单,不用截图了吧。。。比如添加个main.cpp 和 test.cu写点代码:// main.cpp #includeusing namespace std; // decalaring void nvcc_test(); int main(){     nvcc_test();     return 0; }// test.cu #include// defining void nvcc_test(){     std::cout << "I have been processed by NVCC!" << std::endl; }64位配置写到这里,我很期望你用的是64位操作系统。因为CUDA对64位操作系统支持的要好一些。如果你不是64位系统,请跳过这一节。在项目的属性页面单击配置管理器,如下图:如下图新建一个解决方案平台,你会发现x64位平台的。使得 64位平台活动。添加必要的链接库进入属性界面,添加链接库,如下图所示:编译执行按下键盘上的Ctrl+F5组合键!结果如下:Enjoy it!!

    时间:2018-10-19 关键词: c++ cuda

  • 分享一个CUDA的环境配置属性表,从此不用再担心配置不好CUDA环境了

    本文适用:Visual Studio 2008,C++, CUDA版本不限,不过我用的是5.5做的实验。先贴出属性表的内容:将上述代码复制到txt文件中,保存并且关闭之后,重命名txt文件为:cudaenv.vsprops现在开始建立自己的CUDA工程,这里不写CUDA程序,只是用CUDA的Runtime。1、新建一个Win32 控制台应用程序,推荐创建一个空项目。2、选择“视图-->属性管理器”, 分别在项目的Debug|Win32和Release|Win32上右击鼠标,选择“添加现有属性表”,找到之前存好的cudaenv.vsprops。3、切换到“解决方案资源管理器”,在项目上右击鼠标,添加c++代码文件,向添加的代码文件中添加如下代码:#include#include#includeusing namespace std; int main(int argc, char **argv) {   cudaDeviceReset();   return 0; }然后生成,执行以下吧~ 很简单~

    时间:2018-10-16 关键词: studio cuda visual

  • CUDA和OpenGL互操作的实现及分析

    CUDA和OpenGL互操作的实现及分析

    1 CUDA与OpenGL概述OpenGL是图形硬件的软件接口,它是在SGI等多家世界著名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用、共享的、开放式的、性能卓越的三维图形标准。OpenGL在医学成像、地理信息、石油勘探、气候模拟以及娱乐动画上有着广泛应用,它已经成为高性能图形和交互式视景处理的工业标准。OpenGL不是一种编程语言,而是一种API(应用程序编程接口)。程序员可以使用某种编程语言(如C或C++)编写绘图软件,其中调用了一个或多个OpenGL库函数。作为一种API,OpenGL遵循C语言的调用约定。OpenGL开发资料可参考文献[1]和参考文献[2]。图形处理器(GPU)原本是处理计算机图形的专用设备,近十年来,由于高清晰度复杂图形实时处理的需求,GPU发展成为高并行度、多线程、多核的处理器。目前,主流GPU的运算能力已超过主流通用CPU,从发展趋势上来看将来差距会越拉越大。为了合理地利用GPU 资源,CUDA(统一计算设备架构)应运而生。CUDA是一种由NVIDIA推出的通用并行计算架构[3],该架构使GPU能够解决复杂的计算问题,并且由于CUDA编程语言基于标准的C语言,从而大大提高了可编程性。CUDA和OpenGL互操作的基本方式是使用CUDA生成数据,然后使用OpenGL在屏幕上绘制出数据所表示的图形。两者的结合可以通过两种方式来实现:(1)使用OpenGL的PBO(像素缓冲区对象)。在该方式下,CUDA直接生成像素数据,OpenGL显示这些像素;(2)使用OpenGL的VBO(顶点缓冲区对象)。在该方式下,CUDA生成顶点网格数据,OpenGL可以根据需要绘制出平滑的表面图或线框图或一系列顶点。这两种方式的核心都是利用cudaGLMapBufferObject函数将OpenGL的缓冲区映射到CUDA的内存空间上,这样,程序员就可以充分利用CUDA的优点写出性能高的程序在该内存空间上生成数据,这些数据不需要传送,OpenGL可以直接使用。如果不使用CUDA,这些数据需要由CPU来计算产生。一方面,CPU的计算速度通常比GPU慢;另一方面,这些数据需要传送到GPU上以供OpenGL显示使用。鉴于此,当数据量很大时,CUDA和OpenGL的混合使用效果明显。2 CUDA和OpenGL互操作的过程[4]CUDA和OpenGL互操作具体步骤如下:(1)创建窗口及OpenGL运行环境。(2)设置OpenGL视口和坐标系。要根据绘制的图形是2D还是3D等具体情况设置。(1)和(2)是所有OpenGL程序必需的,这里也没什么特殊之处,需要注意的是,后面的一些功能需要OpenGL 2.0及以上版本支持,所以在这里需要进行版本检查。(3)创建CUDA环境。可以使用cuGLCtxCreate或cudaGLSetGLDevice来设置CUDA环境。该设置一定要放在其他CUDA的API调用之前。(4)产生一个或多个OpenGL缓冲区用以和CUDA共享。使用PBO和使用VBO差不多,只是有些函数调用参数不同。以下是具体过程。GLuint bufferID;glGenBuffers(1,&bufferID);//产生一个buffer IDglBindBuffer(parameter1,bufferID);//将其设置为当前非压缩缓冲区,如果是PBO方式,parameter1设置为GL_PIXEL_UNPACK_BUFFER,如果是VBO方式,parameter1设置为GL_ARRAY_BUFFERglBufferData(parameter1,parameter2,NULL,GL_DYNAMIC _COPY);//给该缓冲区分配数据,PBO方式下,parameter1设置为GL_PIXEL_UNPACK_BUFFER,parameter1设置为图像的长度*宽度*4。VBO方式下,parameter1设置为GL_ARRAY_BUFFER,parameter2设置为顶点数*16,因为每个顶点包含3个浮点坐标(x,y,z)和4个颜色字节(RGBA),这样一个顶点包含16 B(5)用CUDA登记缓冲区。登记可以使用cuGLRegisterBufferObject或cudaGLRegisterBufferObject,该命令告诉OpenGL和CUDA 驱动程序该缓冲区为二者共同使用。(6)将OpenGL缓冲区映射到CUDA内存。可以使用cuGLMapBufferObject或cudaGLMapBufferObject,它实际是将CUDA内存的指针指向OpenGL的缓冲区,这样如果只有一个GPU,就不需要数据传递。当映射完成后,OpenGL不能再使用该缓冲区。(7)使用CUDA往该映射的内存写图像数据。前面的准备工作在这里真正发挥作用了,此时可以调用CUDA的kernel,像使用全局内存一样使用映射了的缓冲区,向其中写数据。(8)取消OpenGL缓冲区映射。要等前面CUDA的活动完成以后,使用cuGLUnmapBufferObject或cudaGLUnmapBufferObject函数取消映射。(9)前面的步骤完成以后就可以真正开始绘图了, OpenGL的PBO和VBO的绘图方式不同,分别为以下两个过程。①如果只是绘制平面图形,需要使用OpenGL的PBO及纹理。glEnable(GL_TEXTURE_2D); //使纹理可用glGenTextures(1,&textureID); //生成一个textureIDglBindTexture(GL_TEXTURE_2D,textureID);//使该纹理成为当前可用纹理glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,Width, Height,0,GL_BGRA,GL_UNSIGNED_BYTE,NULL);//分配纹理内存。最后的参数设置数据来源,这里设置为NULL,表示数据来自PBO,不是来自主机内存glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN _FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_ FILTER,GL_LINEAR);//必须设置滤波模式,GL_LINEAR允许图形伸缩时线性差值。如果不需要线性差值,可以用GL_TEXTURE_RECTANGLE_ARB代替GL_TEXTURE_2D以提高性能,同时在glTexParameteri()调用里使用GL_NEAREST替换GL_LINEAR然后就可以指定4个角的纹理坐标,绘制长方形了。②绘制3D场景,需要使用VBO。glEnableClientState(GL_VERTEX_ARRAY);//使顶点和颜色数组可用glEnableClientState(GL_COLOR_ARRAY);glVertexPointer(3,GL_FLOAT,16,0);//设置顶点和颜色指针glColorPointer(4,GL_UNSIGNED_BYTE,16,12);glDrawArrays(GL_POINTS,0,numVerticies);//根据顶点数据绘图,参数可以使用GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES,GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS,GL_QUAD_STRIP,GL_POLYGON(10)前后缓存区来回切换,实现动画显示效果。调用SwapBuffers(),缓冲区切换通常会在垂直刷新间隙来处理,因此,可以在控制面板上关掉垂直同步,使得缓冲区切换立刻进行。3 CUDA和OpenGL互操作性能实例分析3.1 测试实例 这是一个相对简单的实例,其主要功能是不断地动态改变一个纹理图案中每个像素的颜色并显示。该实例使用了OpenGL的PBO并利用了OpenGL与CUDA互操作方式,纹理图案数据的生成主要由CUDA的kernel函数完成,完整程序及CUDA的kernel函数请参看参考文献[5]。如果不使用CUDA,整个程序结构变化不大,主要差别是生成该纹理图案的函数在CPU上运行,因而该函数及其调用方式要重写,具体函数如下:void kernel(uchar4*pos,unsigned int width,unsigned int height,float time){ unsigned int index,x,y;for(x=0;x<width;x++)for(y=0;y<height;y++){unsigned char r=(x+(int)time)&0xff;unsigned char g=(y+(int)time)&0xff;unsigned char b=((x+y)+(int)time)&0xff;index=x*width+y;pos[index].w=0;pos[index].x=r;pos[index].y=g;pos[index].z=b;}}其中,参数pos表示像素数组,width为图像宽度,height为图像高度,time是每次调用该函数时固定递增的一个值。3.2 测试结果上述实例在两种环境中做了实验,CUDA版本都是3.2。测试环境1的主要配置如下:CPU为Intel Core i3-M380,主频为2.53 GHz,GPU为 NVIDIA NVS 3100M,内存为2 GB。测试环境2的主要配置如下:CPU是Intel Core2 duo E7400,主频为2.8 GHz,GPU使用GeForce 9800 GTX+,内存为2 GB。测试时,显示设置的垂直同步要关闭。测试时设置纹理图像的长和宽都是512,CUDA的线程块为1 024,每个线程块内的线程数为256,在OpenGL的显示回调函数里统计f/s(刷新率),结果如表1所示。 从实验结果可以看出,CUDA与OpenGL结合的方式效果显著,显示速度比不使用CUDA提高了7~8倍。CUDA是一种较新的方便使用GPU进行通用计算的架构,OpenGL是图形处理的工业标准。两者的互操作充分利用了GPU的特点,因而显得非常自然和合理,实验验证了两者配合使用的效果。该方式为高性能图形图像显示及科学计算可视化提供了良好的模式架构。

    时间:2018-09-24 关键词: opengl cuda 总线与接口 像素缓冲

  • GPU/FPGA和CPU有什么关系?

    GPU/FPGA和CPU有什么关系?

    作为NVIDIA全球GTC大会中最重要的一站之一,GTC China于9月26日正式登陆北京。本次大会,教主黄仁勋奉上了一场题为“一个全新的计算时代(A NEW COMPUTING ERA)”的主题演讲,并正式发布了首款可编程推理加速平台NVIDIA TensorRT 3、自动驾驶开放平台NVIDIA DRIVE、首款自主机器处理器Xavier。同时,他宣布与阿里、腾讯、百度中国三大云服务提供商达成合作协议,为后者提供人工智能GPU芯片。主题大会结束后,教主黄仁勋参加了媒体的见面会,接受了媒体采访。   自主机器要解决三个方面的问题 黄仁勋认为,对于自主机器或者机器人而言,必须要解决三大方面的根本问题。首先要解决的是为自主机器或者机器人打造一个人工智能的平台,其次是为自主机器提供一个虚拟的,学会做机器人的环境,最后是把人工智能的大脑放到自主机器框架中去。 黄仁勋坦言,当前这三个问题还没有完全解决,三项工作正在并行中,例如 Xavier就是正在进行中的自主机器项目,另外还有Issac机器人项目,通过它可以打造一个虚拟的让机器人学习的环境。 黄仁勋表示,NVIDIA将很快把这三方面的基础打好,整个的产业会在产业基础架构好后推动自主机器正式的生产。随后10到15年,大家将会看到智能领域难以置信的进步。 CUDA是CPU与GPU的完美组合 GPU是否替代CPU?相比FPGA,GPU有哪些优势? 黄仁勋认为,GPU不会替代CPU,将会与CPU进行协同工作,这也是为什么称之为加速器。他表示,无论是CPU还是FPGA,都是通用型的计算芯片,而GPU是专用型的芯片,在专用问题上能够发挥巨大的能量,超过CPU几十倍,是最好的专用架构解决方案。例如,GPU非常适合图形计算和人工智能方面的计算。 FPGA的优势是非常灵活,以太网、声卡等都可以采用FPGA的解决方案。但GPU没有这么大的灵活性,它主要用来进行并行计算加速。但是从性能上来讲,FPGA根本无法与GPU对比,其上千倍的性能差距并不适合用来做人工智能。黄仁勋表示,人工智能的每一个神经网络都可以用FPGA来进行设计,但非常复杂,这也是为什么BAT在人工智能初级阶段采用FPGA,后来选择GPU的主要原因,主要是因为当初没有GPU的解决方案,有了GPU,就不再使用FPGA了。 NVIDIA三年前决定把GPU做成执行处理的Tensor,为了达到计算性能专门进行了调优。作为全球首款可编程AI推理加速引擎,NVIDIA TensorRT 3在性能上得到了进一步提升,运行在Volta上的TensorRT 3,在图像分类方面比最快的CPU还要快40倍,在语言翻译方面则要快140倍。 黄仁勋强调,术业有专攻,NVIDIA不会做通用型的CPU,而是要做极好的专用处理器,而CUDA就是CPU与GPU的完美组合。 NVIDIA看好的人工智能行业 谈到NVIDIA看好的人工智能行业,黄仁勋表示,交通运输行业是我们目前正在大力拓展的行业,当然这个交通运输并不只是包括交通工具,而是指人工智能化的交通运输,例如滴滴就是一家大型的人工智能公司,物流未来将会实现人工智能。 除了交通运输之外,黄仁勋表示未来NVIDIA更看好医疗健康这一领域。他表示,医疗键康的市场体量相当大,人工智能的应用可以帮助科研人员进行新药的研发,对疾病的早期检测以及临床效果的取样等,过去很多解决不了的问题,有了人工智能,这些问题则能够全部解决。 在上午的发布会上,NVIDIA公布了五个领域的人工智能方案,其共同特点是没有GPU是无法实现的。黄仁勋表示,五大领域的项目挑战相当高,NVIDIA为每一个项目或解决方案提供了独一无二的价值。虽然现在的很多项目无法百分之百的成功,但一旦成功,将给社会带来巨大的贡献。 NVIDIA投资的三大原则 本次全球GTC大会中国站,NVIDIA不但宣布了与BAT的合作,而且还宣布投资了景驰、丽台等公司。谈到NVIDIA投资的原则,黄仁勋表示NVIDIA投资主要有三大原则:一是所投资的公司必须具备愿景目标;二是所投资的公司需要英伟达的帮助;三是必须是优秀的公司。 黄仁勋表示,英伟达提供的平台,让大家利用平台去创业,并希望大家都能够取得成功。作为平台供应商,英伟达要做的是不断进步,让平台做得更好。他表示,英伟达不是自闭的公司,而是一家开放型的公司,因此我们愿意跟所有公司进行合作,共同推动AI技术的发展

    时间:2017-09-30 关键词: NVIDIA 技术前沿 黄仁勋 cuda

  • NVIDIA投入CUDA计划,迎来在AI市场的大爆发

    NVIDIA投入CUDA计划,迎来在AI市场的大爆发

    过去几年桌上型电脑(DT)与笔记型电脑(NB)销售量大幅下滑,英特尔(Intel)的年成长率也下滑至9%,市场展望似乎对电脑芯片制造商不利,不过就在英特尔CPU销量持续下滑的同时,NVIDIA的GPU却稳步成长,2016年第4季营收甚至大增55%,当然这和电脑游戏没有太大关系,而是归功于人工智能(AI)市场的爆发。 根据PCMag报导,PC时代早期,电脑性能主要与CPU数量及可用的随机存取存储器(RAM)有关,随着图形密集应用和游戏的兴起,专为加快图框缓冲(framebuffer)图像建立速度的GPU开始崭露头角。而摩尔定律(Moore’s Law)的脚步则已放缓,英特尔无法单靠提高芯片上电晶体数量的优势继续称霸市场。 让NVIDIA GPU再度火热的原因与深度学习有关。深度学习是一种用于AI和认知运算的先进机器学习技术,也是自驾车、影像辨识、语音辨识以及气候预测模型所不可或缺的技术。如同多数演算法,深度学习也仰赖进阶的数学和统计运算,并试图透过不同神经网路类型来模拟人类脑部的功能。 例如语音助理使用自然语言处理,就是使用递回式类神经网路(Recurrent Neural Network),而影像辨识及脸部侦测则使用卷积式类神经网路(Convolutional Neural Network)。 要训练AI识别影像中的物体或分析股市资料,就必须将数据解码为一组数字然后执行矩阵乘法,这是序列运算的CPU无法做到的,而解决这个问题的最佳方案就是使用高达5,000个微核心的GPU执行平行处理。 此外NVIDIA执行长黄仁勋的远见及赌注也是推动其GPU成为深度学习和AI研究人员欢迎的原因。 大约10年前NVIDIA注意到用户使用其绘图芯片计算复杂的投资以及气候模型,因此决定投入统一计算架构(Compute Unified Device Architecture;CUDA)的研发,据纽约时报报导,NVIDA的CUDA计划,至今已投入100亿美元,目的就是将GPU转化为更通用的运算工具。 CUDA是一个平行运算平台及程式设计模型,透过图形处理单元大幅提升运算性能,帮助使用者针对不同任务设计程式。尽管面对ATI、超微(AMD)在GPU市场的激烈竞争,NVIDIA仍旧把赌注放在CUDA上,后来也证明这样的做法是正确的,当云端运算、大数据和AI开始展现动能时,NVIDIA的芯片恰好符合这些运算的需求。 不过NVIDIA不可以目前的成就自满,毕竟英特尔与Google正急起直追,前者以160亿美元收购FPGA芯片大厂AItera及专门设计AI芯片的新创公司Nervana,后者则开发了支援其语音辨识平台及AlphaGo的特殊应用集成电路TPU。

    时间:2017-09-19 关键词: NVIDIA 英特尔 GPU cuda 行业资讯

  • 详细解析众核多计算模式系统的构建

    详细解析众核多计算模式系统的构建

    0 引言 在航空航天、医疗服务、地质勘探等复杂应用领域,需要处理的数据量急剧增大,需要高性能的实时计算能力提供支撑。与多核处理器相比,众核处理器计算资源密度更高、片上通信开销显着降低、性能/功耗比明显提高,可为实时系统提供强大的计算能力。 在复杂应用领域当中,不同应用场景对计算的需求可能不同。例如,移动机器人在作业时,可能需要同时执行路径规划、目标识别等多个任务,这些任务需要同时执行;在对遥感图像处理时,需要对图像数据进行配准、融合、重构、特征提取等多个步骤,这些步骤间既需要同时执行,又存在前驱后继的关系。因此,基于众核处理器进行计算模式的动态构造,以适应不同的应用场景和应用任务成为一种新的研究方向。文献[1]研究了具有逻辑核构造能力的众核处理器体系结构,其基本思想是基于多个细粒度处理器核构建成粗粒度逻辑核,将不断增加的处理器核转化为单线程串行应用的性能提升。文献提出并验证了一种基于类数据流驱动模型的可重构众核处理器结构,实现了逻辑核处理器的运行时可重构机制。文献 提出了一种支持核资源动态分组的自适应调度算法,通过对任务簇的拆分与合并,动态构建可弹性分区的核逻辑组,实现核资源的隔离优化访问。 GPGPU(General - Purpose Computing on GraphicsProcessing Units)作为一种典型的众核处理器,有关研究多面向单任务并发执行方面的优化以及应用算法的加速。本文以GPGPU为平台,通过研究和设计,构建了单任务并行、多任务并行和多任务流式处理的多计算模式处理系统。 1 众核处理机 1.1 众核处理机结构 众核处理机是基于众核控制单元(MPU)与众核处理器(GPGPU)相结合的主、协处理方式构建而成,其逻辑结构如图1所示。众核处理机由众核控制单元和众核计算单元两部分组成,其中众核控制单元采用X86结构的MPU,与众核计算单元之间通过PCI-E总线进行互连。   1.2 CUDA流与Hyper-Q 在统一计算设备架构(Compute Unified Device Ar-chitecture,CUDA)编程模型中,CUDA流(CUDA Stream)表示GPU的一个操作队列,通过CUDA流来管理任务和并行。CUDA 流的使用分为两种:一种是CUDA 在创建上下文时会隐式地创建一个CUDA流,从而命令可以在设备中排队等待执行;另一种是在编程时,在执行配置中显式地指定CUDA 流。不管以何种方式使用CUDA流,所有的操作在CUDA流中都是按照先后顺序排队执行,然后每个操作按其进入队列的顺序离开队列。换言之,队列充当了一个FIFO(先入先出)缓冲区,操作按照它们在设备中的出现顺序离开队列。 在GPU 中,有一个CUDA 工作调度器(CUDA WorkDistributor,CWD)的硬件单元,专门负责将计算工作分发到不同的流处理器中。在Fermi架构中,虽然支持16 个内核的同时启动,但由于只有一个硬件工作队列用来连接主机端CPU 和设备端GPU,造成并发的多个CUDA 流中的任务在执行时必须复用同一硬件工作队列,产生了虚假的流内依赖关系,必须等待同一CUDA流中相互依赖的kernel执行结束,另一CUDA流中的ker-nel才能开始执行。而在Kepler GK110架构中,新具有的Hyper-Q特性消除了只有单一硬件工作队列的限制,增加了硬件工作队列的数量,因此,在CUDA 流的数目不超过硬件工作队列数目的前提下,允许每个CUDA流独占一个硬件工作队列,CUDA流内的操作不再阻塞其他CUDA流的操作,多个CUDA流能够并行执行。 如图2 所示,当利用Hyper-Q 和CUDA 流一起工作时,虚线上方显示为Fermi模式,流1、流2、流3 复用一个硬件工作队列,而虚线下方为Kepler Hyper-Q 模式,允许每个流使用单独的硬件工作队列同时执行。   2 众核多计算模式处理框架 为了充分发挥众核处理器的计算能力,众核处理系统面对不同的计算任务的特点,可构建三种计算模式,即单任务并行计算、多任务并行计算、多任务流式计算。 2.1 众核多计算模式处理系统结构 众核多计算模式处理系统结构如图3 所示。众核处理系统包括数据通信、任务管理、形态管理、资源管理和控制监听模块。   数据通信模块:提供接口给主控机,负责接收从主控机发送来的任务命令和任务计算所需的任务数据,并且最终将众核处理机运算完成的计算结果通过该模块返回给主控机。 控制监听模块:在众核处理系统运行时,实时获取主控机发送给众核处理机的任务命令,将其传送给任务管理模块,并接收任务管理模块返回的任务命令执行结果。 任务管理模块:负责计算任务的加载过程,将控制监听模块发送来的任务命令存于任务队列,当众核计算单元需要加载任务进行计算时,从任务队列中获取任务命令,根据任务命令从任务配置文件中获取任务计算所需的任务信息,该任务信息包含了计算任务运行时所需的存储空间大小、适合于该任务的计算模式、执行函数(即CUDA中的kernel函数)等内容,在计算任务在被加载前,需要通知形态管理模块把众核计算单元切换到指定的计算模式下,并通知资源管理模块分配存储空间,通过数据通信模块获取任务数据,然后读取任务计算库,加载执行函数进行计算。 形态管理模块:接收任务管理模块发送来的目标计算模式,切换到该种计算模式。 资源管理模块:根据任务管理模块发送的参数分配存储空间,包括众核控制单元的存储空间和众核计算单元的存储空间,众核控制单元的存储空间用于对任务数据进行缓存,然后通过数据传输的API接口把缓存在众核控制单元的数据传送到众核计算单元的存储空间,在计算时由从众核计算单元存储空间加载数据进行计算。 [!--empirenews.page--]2.2 计算模式构建与切换 计算模式构建是形态管理模块根据接收到的命令动态构建出被指定的目的计算模式的过程。众核处理系统在初始化时,就已经创建了指定数目的CUDA 流(CUDA流的最大数目取决于GPU中硬件工作队列的数目),并采用空位标记法对创建的CUDA流进行管理,通过标记位的有效性描述CUDA 流的可用性。当目的计算模式为单任务计算时,只需将首位的CUDA流标记设置为有效,其他全部标记为无效,在对计算任务加载时,将计算任务放入该CUDA流中进行计算;当目的计算模式为多任务计算时,需要将指定数目CUDA流的标记位设置为有效,在对计算任务加载时,通过轮询的方式将计算任务放入到相应的CUDA 流中,利用CUDA 流的Hyper-Q特性,同时加载多个计算任务到众核计算单元;当目的计算模式为多任务流式计算时,需要将指定CUDA 流的标记设置为有效,从构建第一个计算步开始,将第一个计算步放入第一个CUDA 流中进行计算,当第一个计算步首次完成计算后,利用二元信号量通知众核控制单元中的任务管理模块开始构建第二个计算步,并重新构建第一个计算步,以此类推,完成对多任务流式计算中每个计算步的动态构建过程。 计算模式的切换是当众核计算单元的当前计算模式与计算任务执行需要的计算模式(即目的计算模式)不匹配时,需要对众核计算单元的计算模式进行切换,以适应计算模式变化的需求。 在从任务配置文件中获取适应于计算任务执行的目的计算模式后,首先与当前计算模式进行比较,若匹配成功则不需要进行计算模式的切换;若匹配失败则进一步判断众核在当前计算模式下是否空闲,如处于忙碌状态则需要等待,对于不同优先级的任务设有不同的等待时限,以保证对计算任务的及时响应,当大于这一时限时强制结束正在运行的任务以释放计算资源,从而构建新的计算模式,完成计算模的切换过程,流程图如图4 所示。   2.3 共享内存缓冲技术 众核计算单元在对主控机请求的计算任务加载前,必须获取来自主控机的任务数据,为了实现对任务数据的接收和发送,需要建立相应的数据缓冲区。传统的方法是采用消息队列和基于共享内存信号灯的方式来建立和管理数据缓冲区,但当数据的写入和读取速度差别较大时,容易造成数据缓冲区的阻塞。因此采用一种可滑动动态共享内存缓冲技术,如图5所示。 在众核控制单元的存储空间中申请存储空间作为存放数据的缓冲池,按需要建立指定数量的单向指针链表,每个指针链表代表一个数据缓冲区,在众核处理系统的计算模式切换时,可根据并行任务数目的变化修改指针链表的节点数,使每个数据缓冲区占用的存储空间按需滑动,以提高整个数据缓池数据的传递效率。 2.4 计算库动态加载 在对计算任务的执行函数进行加载时,采用动态共享库的方式,因为动态链接的共享库具有动态加载、封装实现、节省内存等优点,可以把众核计算单元的执行函数与逻辑控制程序相隔离,降低了众核计算与逻辑控制的耦合度,增加了可扩展性和灵活性。 在动态加载计算库前,需要将执行函数编译生成动态共享库,进而在程序中进行显示调用。当调用时使用动态加载API,该过程首先调用dlopen以打开指定名字的动态共享库,并获得共享对象的句柄;而后通过调用dlsym,根据动态共享库操作句柄与符号获取该符号对应的函数的执行代码地址;在取得执行代码地址后,就可以根据共享库提供的接口调用与计算任务对应的执行函数,将执行函数发射到众核计算单元,由众核计算单元根据执行函数的配置参数组织计算资源进行计算;当不会再调用共享对象时调用dlclose关闭指定句柄的动态共享库。 3 结语 针对复杂应用领域计算任务对多种计算模式的需求,本文研究了众核处理机结构,根据NVIDIA KeplerGK110架构中Hyper-Q 与CUDA 流的特性,构建了可单任务并行计算、多任务并行计算、多任务流式计算间动态切换的众核多计算模式系统,能够提高实时计算平台的灵活性,以适应不同的任务计算需求。下一步的研究方向是挖掘GPU中硬件工作链路与SM(Streaming Mul-tiprocessor)间的映射机制。

    时间:2017-03-16 关键词: 嵌入式处理器 cuda 众核处理器

  • 为了CUDA:NVIDIA收购高性能计算编译器厂商PGI

     NVIDIA今天官方宣布,已经收购在高性能计算领域领先的编辑器和工具供应商The Portland Group (PGI)。 PGI是意法半导体旗下全资子公司,创立于1989年,在高性能计算编译器技术上拥有悠久的历史,客户包括Intel、IBM、Linux、OpenMP、GPGPU、ARM。 PGI与NVIDIA的合作也非常密切,已经携手五年,特别是在两年前推出了面向32/64位x86架构的CUDA C编译器,开启了CUDA x86之路。 NVIDIA表示,被收购后,PGI将保留原有品牌和体系继续运营,继续开发OpenACC、CUDAFortran、CUDA x86、GPGPU等相关技术,并继续为广大客户服务,包括芯片制造商、科研实验室、HPC计算中心。当然,最核心的任务将变成为NVIDIA平台进行优化服务。 但愿PGI继续保持开放态度,不要因为被收购而封闭起来,那对HPC行业来说无疑是一大损失。 NVIDIA没有透露此次收购花了多少钱。

    时间:2013-08-07 关键词: 收购 NVIDIA pgi cuda

  • 为了CUDA:NVIDIA收购高性能计算编译器厂商PGI

      NVIDIA今天官方宣布,已经收购在高性能计算领域领先的编辑器和工具供应商The Portland Group (PGI)。 PGI是意法半导体旗下全资子公司,创立于1989年,在高性能计算编译器技术上拥有悠久的历史,客户包括Intel、IBM、Linux、OpenMP、GPGPU、ARM。 PGI与NVIDIA的合作也非常密切,已经携手五年,特别是在两年前推出了面向32/64位x86架构的CUDA C编译器,开启了CUDA x86之路。 NVIDIA表示,被收购后,PGI将保留原有品牌和体系继续运营,继续开发OpenACC、CUDAFortran、CUDA x86、GPGPU等相关技术,并继续为广大客户服务,包括芯片制造商、科研实验室、HPC计算中心。当然,最核心的任务将变成为NVIDIA平台进行优化服务。 但愿PGI继续保持开放态度,不要因为被收购而封闭起来,那对HPC行业来说无疑是一大损失。 NVIDIA没有透露此次收购花了多少钱。

    时间:2013-08-06 关键词: NVIDIA 高性能 pgi cuda 行业资讯

  • AMD:NVIDIA CUDA、PhysX因为封闭将彻底失败

    AMD负责全球通路销售的副总裁Roy Taylor近日在接受媒体采访时称,NVIDIA CUDA技术已经彻底失败,PhysX物理加速技术也难逃一死,因为行业不喜欢封闭的标准。 他指出,在早些年的游戏行业中,封闭标准尚可赢得一席之地,但如今是个多平台、多形态的世界,封闭标准是不健康的,没人想要它。 AMD高管称:“NVIDIA的发明是值得赞赏的。GPGPU(通用计算)大势所趋,是绝对妙不可言的,但此一时彼一时。现在,整个行业都不想要封闭标准,所以大家才都转向了OpenCL。” 事实上,AMD的这种论调已经反复提出了N次,其中有一定的道理,但归根结底还是因为AMD没有足以抗衡对手的相应技术,独立研发和推广又不允许,只能押注行业标准,不过另一方面,CUDA目前的发展势头依然不错,PhysX的确已经半死不活,长年累月不见更新,NVIDIA也很少宣传它了。 Roy Taylor还提到,Intel处理器中GPU所占比例越来越高,相信最终也会采纳APU的概念。“我认为他们这么做是为了GPGPU,而不是因为游戏。他们肯定看到了HSA(异构系统架构)是不可阻挡的浪潮,我只是不明白他们干嘛不(把Haswell)叫APU……看上去只是因为自尊。” 他还揭短一般举了自家的例子:“你也许记得,(ATI)曾经努力推广VPU的概念,经常说‘不不不,它是VPU,不是GPU’。GPU后来被广泛采纳,他们也默认接受了,我想Intel会同样如此。你看吧,它(Haswell)就是APU,干嘛还要遮遮掩掩呢?” 对于APU等整合显卡对独显的冲击,Roy Taylor也表示对于高端玩家来说,独显永远是有必要的,永远不会消失,大家也不应该怀疑AMD对独显的执着。 Roy Taylor在采访中还曾披露,AMD将会大力促销A10-6800K,以更高的性价比对抗Intel Core i5-4670K。

    时间:2013-08-06 关键词: NVIDIA AMD cuda physx

  • NVIDIA CUDA正式支持Python语言

    NVIDIA今天宣布,CUDA并行编程架构已经正式提供对开源编程语言Python的支持。这是C、C++、Fortran(PGI)之后,CUDA支持的第四种语言。 Python,吉多·范罗苏姆(Guido van Ross) 1989年创立,一种面向对象、直译式的编程语言,简单易学易用、成熟稳定,是当今十大编程语言之一,全球用户量超过300万人。NVIDIA表示,Python语言丰富的库和先进的特性使其非常适合为多种高性能计算应用开发程序,包括科学、工程、大数据分析等等。 NVIDIA CUDA对于Python的支持并非直接在SDK层面上实现,而是借助了NumbaPro,这是Continuum Analytics公司新产品Anaconda Accelerate中的一个编译器。 这也是2011年发起的开源编译器项目LLVM的最新成果。通过将CUDA编译器源代码导入其中,NVIDIA可以获得更多编程语言的支持,Continuum Analytics公司就是用它将Python带往CUDA世界的。 不过事实上,NumbaPro并不是第一个Python CUDA编译器,在此之前已经有了官方支持的PyCUDA,但是NumbaPro今后将成为正选。

    时间:2013-03-19 关键词: NVIDIA python cuda

  • GTX 780明年登场:2304个CUDA核心

    SC 12会议期间NVIDIA、Intel以及AMD都展示或者发布了自家的新一代运算卡,三家的东西都各具特色,很难判定孰轻孰弱,总之都是彪悍异常。 NVIDIA这边除了展示自家Tesla K20家族的计算能力之外还自曝了一下桌面显卡的发展规划,公布了最新的桌面路线图。从路线图来看NVIDIA的桌面显卡规划有了较大的改变,原本计划于2013年发布的Maxwell架构跳票到了2014年,而2013年的主打产品则会是Kepler架构的升级版。 关于Maxwell架构目前还没有什么有用的信息曝出,但从国外媒体的消息来看Maxwell将会采用台积电的20nm工艺制造,每瓦浮点运算能力相对kepler能够提升2到3倍。 明年的Kepler架构增强版不出意外的话就是GTX 700系列显卡,理论上将会采用GK110核心的衍生品来进行制造,但即便是顶级的GTX 780也不可能使用完整的GK110核心,很有可能是将GK110核心的2880个CUDA核心阉割至2304个(12组SMX单元),显存位宽保持384bit不变,配备3GB GDDR5显存,至于频率,GTX 780的默认频率很有可能达到1.1GHz,Boost频率则是1150MHz,等效显存频率为6200MHz。至于性能就不好说了,仅从SP数量方面来看,GTX 780的性能就能比GTX 680高出50%以上,算上频率等因素的影响,GTX 780比GTX 680强80%也不是没有可能的事情。

    时间:2012-11-15 关键词: gtx cuda 780 2304

  • 英伟达公布开源CUDA编译器及源代码

    英伟达公司宣布,LLVM现已支持英伟达GPU,从而让更多的研究人员、独立软件供应商(ISV)以及编程语言能够利用GPU加速的优势。LLVM是一款在业内极其流行的开源编译器。 LLVM是一种应用广泛的开源编译器架构,该架构采用模块化设计,能够轻松地新增对编程语言和处理器架构的支持。CUDA 编译器可支持C、C++ 以及Fortran语言,能够为运用大规模并行英伟达GPU的应用程序加速。英伟达携手LLVM开发者,共同提供针对LLVM内核的CUDA 编译器源代码变化以及并行线程执行后端。如此一来,程序员便能够利用更广泛的编程语言来针对GPU加速器开发应用程序,从而令GPU 计算比以往任何时候都更加唾手可得、更加普遍。 LLVM支持各种各样的编程语言和前端,其中包括C/C++、Objective-C、Fortran、Ada、Haskell、Java bytecode、Python、Ruby、ActionScript、GLSL以及Rust。它也是英伟达在其CUDA C/C++ 架构中所采用的编译器架构,长期以来一直被苹果、AMD以及Adobe等领先企业广泛采用。 Double Negative公司研究员兼LLVM项目贡献者Dan Bailey表示:“Double Negative 已经将其流体动力学解算软件移植到Jet这一特定领域的语言上来,该语言就是基于LLVM的。 除了支持的现有架构以外,英伟达的全新开源LLVM编译器让程序员能够毫不费力地编译那些针对英伟达GPU架构而大力优化的代码,从而可大幅加速电影视觉特效中用到的模拟计算。” MathWorks公司并行计算营销高级经理Silvina Grad-Freilich指出:“MathWorks 运用LLVM工具链元件来在MATLAB语言中新增GPU支持。对我们所服务的技术领域来说,GPU支持与开源LLVM编译器非常有价值。” 英伟达公司GPU计算软件总经理Ian Buck表示:“我们向LLVM提供的代码是在屡获殊荣的主流CUDA 产品上开发出来的,因而能够为程序员确保可靠性以及完全兼容当今PC与服务器中安装的数亿颗英伟达 GPU。对于GPU计算来说,这无疑是一个改变行业面貌的里程碑,让研究人员和程序员能够无比灵活地选用各种编程语言和硬件架构来开发其下一代应用程序。” 更多计算机与外设信息请关注:21ic计算机与外设频道

    时间:2012-05-23 关键词: 英伟达 开源 编译器 cuda

首页  上一页  1 2 下一页 尾页
发布文章

技术子站

更多

项目外包