`
vfh615gc
  • 浏览: 14385 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

深入了解GPU--学习教材 (摘自opengpu)

 
阅读更多

深入了解GPU--学习教材 (摘自opengpu)
2010年06月13日
  1. 入门:    NEHE  http://nehe.gamedev.net         中文版  http://www.owlei.com/DancingWind/
  OpenGL Superbible 4ed      《OpenGL超级宝典(第4版)》
  2.OpenGL Shading Language 2ed
  这本书有中文版,但是我强烈不建议看,除非你不像学会这门语言。上一本书主要讲解了API使用,但是对于GLSL讲解得不多。所以在用这本书打打牢基础。Shader Programing是现代图形硬件的关键,有相当多的算法仰仗SHader,必须给与足够重视。
  3.《OpenGL编程指南 7ed》
  这本书俗称红宝书,没有必要专门看,但是作为工具字典书还是很有必要的,查一查API使用。其实最好的API查阅还是看OGL Spec~~~  :>而且要设计GPU的话,OGL/D3D Spec也是要反反复复看个三四遍得!(顺便提一下,微软的D3D Spec / Ref Code是需要和微软签NDA协议才能拿到手的,我记得浙大CAD那边偷偷搞到手过这些文档是源代码,后来泄漏了,还被微软发信警告了某公司~~)
  对于D3D编程来说看微软的SDK文档就够了也不用折腾去买什么书,微软SDK文档就是最好的书籍,还免费~:〉
  4. 《3D绘图程序设计:使用Direct3D 10/9和OpenGL 2.0》
  接下来就是练习各种图形算法以及效果,这里先挑一本简单的书联系一下,这本书写得非常工业化,都是相对来说游戏中比较实用的技术。尽管错误不少,但是学习是足够了。到此为止,你对图形学的学习算是度过第一阶段了,基本完成了入门。接下来要看一系列的中级教程。
  5.GPU Gems 1/2/3
  这是NV组团出版的一本书,可以说是论文集,包含GPU的各个领域,写得非常好,这三本书必读。这是阅读图形学论文的前提。
  6. Graphics Gems 系列
  这各系列的书虽然有些老,但是也很经典,多多了解从前的设计,从前的图形算法,有助于理解CG的演变以及近些年来优化的主要方向~~
  7.ShaderX 系列
  应朋友的要求把这本书加上,这个系列的书我还没来得及看过,(我OUT了……)懂得朋友们可以评价一下~
  8.Real-time rendering 2/3ed
  本书绝对必读!!!本书在GPU Architecture中的地位堪比CPU中的《量化方法》那本书,包括Reference等论文一定也要看,都是作者精心挑选的,非常经典~~   对于自己的算法只是也是非常开阔的。
  9.  Procedural Elements for Computer Graphics (2E)
  《计算机图形学的算法基础(原书第2版)》
  对于GPU架构设计来说,本书也是绝对必读!这本书实验必须一一过关,本书讲解最底层的图形算法,这些算法不依赖于任何硬件,虽然年代久远,但是在实时图形学里OGL仰仗的大部分图形算法不也都是七八十年代的么,包括Z/S-buffer/Edge function Rasterization/vertex Transform /Ground Shading等等……所以本书必读!
  ===============计算机架构师=====================
  第一阶段步入先做一个CPU架构师~[/b]
  首先是计算机体系结构(Computer Architecture),因为无论是GPU还是CPU归根到底都是处理器(Processor),而计算机体系结构就是讲解处理器如何工作以及如何权衡取舍各个模块特性参数的一门课程。主要参考书目如下:(读书顺序如编号,参考书目可以根据兴趣穿插在其中~)
  1.计算机组成和设计:硬件/软件接口
  Computer Organization & Design:The Hardware/Software Interface
  本书就不多说了,组成原理是体系结构的专业基础课程,本书必读!
  2.《大型RISC处理器设计--用描述语言Verilog设计VLSI芯》
  本书的阅读要包括没有翻译的高级本,这本书是教你如何组一个工业级别的CPU。可以获得很多硬件上的定量分析的知识。
  3.量化方法第四版英文版
  读要包括附录和习题以及参考论文,这本书是体系结构领域的圣经,不读不足以成学过体系结构。
  4. Modern Processor Design:Fundamentals of Superscalar Processors 
  《现代处理器设计--超标量处理器基础》
  这本书也必须做习题,本书讲解了很多处理器设计的实例,要结合书后的参考论文一一阅读。
  5.  Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency
  本书主要讲解了面向Web Server的事务处理器的架构应该如何权衡,书中的研究成果来自SUN Niagara得第一手材料。非常具有代表性~书也不厚,可以当做小说来看。
  6. Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools
  作为VILW的代表作,必须阅读,其实对VLIW支持可以算在编译器领域,因为VLIW处理器在架构上没有太多难懂的地方。不过这里作为预览,稍后再编译技术学习的时候可以轻松一些。
  7. VLSI Digital Signal Processing Systems:Design and Implementation 
  本书作为DSP里面最经典的微体系结构教材,必读!这本书很工程,没有太多废话,写作效率很高~~~
  8.  Stream Processor Architecture
  本书主要是斯坦福的对于流处理器设计的总结,其中大部份人都去了AMD或是NV做架构,对于研究GPGPU来说,本书必看!从目前已经有过的研究来看,GPGPU还是难以胜任流计算之外的通用计算任务。
  9. Parallel Computer Architecture A Hardware/Software Approach(Second Edition)
  本书作为体系结构扩展学习的材料,对于并行计算机讲解的相当深入浅出,虽然年代老了一些,但是技术是不分先进与落后的。要博观约取,日后才能厚积薄发~~。此书我没有通读,所以留下遗憾,导致并行架构方面的知识大大欠缺,不足引经据典。日后有时间要补上~~
  10.See MIPS RUN Second RD
  《MIPS体系结构透视(英文影印版)(第2版)》
  这本书其实不是讲解CPU如何设计的,但是讲解了CPU如何与软件互动,作为一本补充阅读的材料是非常的好的。即便软件工程师也推荐阅读。
  另外,还包括各种总线技术,毕竟总线技术在未来的处理器以及处理器阵列中有不可或缺的意义!必须要搞明白,包括AXI、OCP、PCI、PCI-E,之后就可以看一些关于片上网络(Network on Chip)的书籍和论文(主要是论文。)
  另外还包括网格等技术相关的书籍和论文都要多多阅读。体系结构的书籍还是相当多的,数目很多,面向方向包括目前非常火爆的低功耗技术如何与处理器架构联系在一起,也包括专门用于网络传输的网络处理器,容错技术,可重构技术等。一脚下去深不见底……学无止境的。所以读书前要确立好目标,千万别看什么NB就学什么,来回换山头。其实读书永远是一个人入门的阶段,做到熟练之后就是大量的阅读论文了,尤其是ACM的论文,不读论文的话就不可能做到一个好的研究成果,因为只有相对稳定和陈旧的理论才回写入书本。最新的科技都是写在论文当中。多读论文可以节省自己大量的时间。
  ps:另外推荐几本有代表意义的书
  Computer Architecture Techniques for Power-Efficiency 必读!未来的计算是属于嵌入式的,所以低功耗计算是未来的趋势~~~
  Fault Tolerant Computer Architecture  研究容错体系结构必读,未来的处理器必定会建立在容错片上网络的基础之上,这个技术对于Manycore来说必不可少。
  Network Processors_Architectures, Protocols and Platforms  网络处理器,可以观摩一下另一种架构~~ :>
  Virtual Machines: Versatile Platforms for Systems and Processes  虚拟机技术,其实可以算在编译系统中,不过这里也牵扯到不少架构的东西,这是未来云计算的关键,必须读~~!
分享到:
评论

相关推荐

    Hotball's Hive 的CUDA学习教程

    是在CUDA论坛上发表的贴子,有心人收集到了一起,非常清晰明了的一篇入门文章。附原地址:http://www.opengpu.org/forum.php?mod=viewthread&tid=2435&page=1&authorid=33

    计算机图形学

    计算机图形学,OPenGpu,VC++,verilog,virtex5

    opencl大学套件(中英文版)

    附件仅是英文,翻译见opengpu论坛http://www.opengpu.org/forum.php?mod=viewthread&tid=4695&extra=page%3D1

    PBRT阅读笔记

    这个是整理至开源论坛上光线跟踪的讲义,方便大家阅读转至网址http://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=4148&highlight=pbrt

    高校学生选课系统项目源码资源

    项目名称: 高校学生选课系统 内容概要: 高校学生选课系统是为了方便高校学生进行选课管理而设计的系统。该系统提供了学生选课、查看课程信息、管理个人课程表等功能,同时也为教师提供了课程发布和管理功能,以及管理员对整个选课系统的管理功能。 适用人群: 学生: 高校本科生和研究生,用于选课、查看课程信息、管理个人课程表等。 教师: 高校教师,用于发布课程、管理课程信息和学生选课情况等。 管理员: 系统管理员,用于管理整个选课系统,包括用户管理、课程管理、权限管理等。 使用场景及目标: 学生选课场景: 学生登录系统后可以浏览课程列表,根据自己的专业和兴趣选择适合自己的课程,并进行选课操作。系统会实时更新学生的选课信息,并生成个人课程表。 教师发布课程场景: 教师登录系统后可以发布新的课程信息,包括课程名称、课程描述、上课时间、上课地点等。发布后的课程将出现在课程列表中供学生选择。 管理员管理场景: 管理员可以管理系统的用户信息,包括学生、教师和管理员账号的添加、删除和修改;管理课程信息,包括课程的添加、删除和修改;管理系统的权限控制,包括用户权限的分配和管理。 目标: 为高校学生提

    TC-125 230V 50HZ 圆锯

    TC-125 230V 50HZ 圆锯

    影音娱乐北雨影音系统 v1.0.1-bymov101.rar

    北雨影音系统 v1.0.1_bymov101.rar 是一个计算机专业的 JSP 源码资料包,它为用户提供了一个强大而灵活的在线影音娱乐平台。该系统集成了多种功能,包括视频上传、播放、分享和评论等,旨在为用户提供一个全面而便捷的在线视频观看体验。首先,北雨影音系统具有强大的视频上传功能。用户可以轻松地将本地的视频文件上传到系统中,并与其他人分享。系统支持多种视频格式,包括常见的 MP4、AVI、FLV 等,确保用户能够方便地上传和观看各种类型的视频。其次,该系统提供了丰富的视频播放功能。用户可以选择不同的视频进行观看,并且可以调整视频的清晰度、音量等参数,以适应不同的观看需求。系统还支持自动播放下一个视频的功能,让用户可以连续观看多个视频,无需手动切换。此外,北雨影音系统还提供了一个社交互动的平台。用户可以在视频下方发表评论,与其他观众进行交流和讨论。这为用户之间的互动提供了便利,增加了观看视频的乐趣和参与感。最后,该系统还具备良好的用户体验和界面设计。界面简洁明了,操作直观易用,让用户可以快速上手并使用各项功能。同时,系统还提供了个性化的推荐功能,根据用户的观看历史和兴趣,为用户推荐

    Tripp Trapp 儿童椅用户指南 STOKKE

    Tripp Trapp 儿童椅用户指南

    node-v8.13.0-linux-armv6l.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    谷歌浏览器 64位-89.0.4389.128.exe

    Windows版本64位谷歌浏览器,是由Google谷歌公司开发的一款电脑版网络浏览器,可以运行在Windows 10/8.1/8/7 64位的操作系统上。该浏览器是基于其它开放原始码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的特点是简洁、快速。并且支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,谷歌浏览器(Google Chrome)基于更强大的JavaScript V8引擎,这是当前Web浏览器所无法实现的。

    适用于鲲鹏麒麟的OpenJDK1.8

    适用于鲲鹏麒麟的OpenJDK1.8

    毕业设计-基于SSH的任务调度系统的设计与实现

    任务调度试系统,基本功能包括:用户的注册、用户的登录、发起项目、项目详细及搜索等。本系统结构如下: (1)用户的注册登录: 注册模块:完成用户注册功能; 登录模块:完成用户登录功能; (2)发起项目: 发起项目模块:完成了项目及项目下一个或者多个任务的添加; 项目详细:点击项目名称,可以看到项目及任务详细信息; 搜索项目:完成对项目名称的模糊搜索功能 任务调度试系统,基本功能包括:用户的注册、用户的登录、发起项目、项目详细及搜索等。本系统结构如下: (1)用户的注册登录: 注册模块:完成用户注册功能; 登录模块:完成用户登录功能; (2)发起项目: 发起项目模块:完成了项目及项目下一个或者多个任务的添加; 项目详细:点击项目名称,可以看到项目及任务详细信息; 搜索项目:完成对项目名称的模糊搜索功能

    30个炫酷的数据可视化大屏(含源码)

    大屏数据可视化是以大屏为主要展示载体的数据可视化设计,30个可视化大屏包含源码,直接运行文件夹中的index.html,即可看到大屏。 内含:数据可视化页面设计;数据可视化演示系统;大数据可视化监管平台;智能看板;翼兴消防监控;南方软件视频平台;全国图书零售监测数据;晋城高速综合管控大数据;无线网络大数据平台;设备大数据;游戏数据大屏;厅店营业效能分析;车辆综合管控平台;政务大数据共享交换平台;智慧社区;物流云数据看板平台;风机可视化大屏等。

    基于yolov5识别算法实现的DNF自动脚本源码.zip

    优秀源码设计,详情请查看资源源码内容

    毕业设计:基于SSM的mysql-在线网上书店(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_在线网上书店(源码 + 数据库 + 说明文档) 2.系统分析与设计 3 2.1系统分析 3 2.1.1需求分析 3 2.1.2必要性分析 3 2.2系统概要设计 3 2.2.1 项目规划 3 2.2.2系统功能结构图 4 2.3开发及运行环境 4 2.4逻辑结构设计 5 2.4.1 数据库概要说明 5 2.4.2 主要数据表结构 6 2.5文件夹架构 9 2.6编写JAVA BEAN 9 3.网站前台主要功能模块设计 10 3.1前台首页架构设计 10 3.2网站前台首页设计 11 3.3新书上市模块设计 12 3.4特价书籍模块设计 13 3.5书籍分类模块设计 14 3.6会员管理模块设计 15 3.7购物车模块设计 17 3.8收银台设计模块 19 3.9畅销书籍模块设计 20 4.网站后台主要功能模块设计 21 4.1网站后台文件夹架构设计 21 4.2后台主页面设计 21 4.3书籍管理模块设计 22 4.4会员管理模块设计 25 4.5订单管理模块设计 26 4.6公告管理模块设计 28 4.7退出系统页面设计 29 5.网站制作中遇到的问

    python 开发 python爬虫数据可视化分析项目源码加课题报告,源码注解清晰一看就懂,适合新手.zip

    python 开发 python爬虫数据可视化分析项目源码加课题报告,源码注解清晰一看就懂,适合新手

    node-v8.0.0-linux-armv7l.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    使用FPGA发送一个经过曼彻斯特编码的伪随机序列

    rtl中存放的是设计文件 sim中存放的是仿真文件

    基于Java的班级管理系统课程设计源码

    附件是基于 Java的班级管理系统课程设计源码,包含程序说明和运行环境要求,文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流!

    最新获取QQ微信头像橘头像阁PHP源码下载.rar

    最新获取QQ微信头像橘头像阁PHP源码下载.rar最新获取QQ微信头像橘头像阁PHP源码下载.rar

Global site tag (gtag.js) - Google Analytics