基于SIMD指令的多核软件渲染器的设计与实现
本文关键词:基于SIMD指令的多核软件渲染器的设计与实现,,由笔耕文化传播整理发布。
【摘要】:新研发的处理器越来越多地加入SIMD向量指令集,增强其数据并行处理能力。无锡江南计算所研发的国产处理器神威也搭载了SIMD向量处理单元。然而,国产处理器平台上应用匮乏,三维可视化应用尤其如此,而三维可视化应用的开发离不开高效的渲染器。因此我们开发了本文描述的渲染器,期望推进国产处理器上三维应用的发展。本文详细描述了一个为装备了SIMD处理单元的多核处理器设计的软件渲染器架构。传统的渲染管线难以并行化,本文中我们设计了一个sort-middle架构的并行渲染管线,该设计能有效利用多核和SIMD处理单元带来的性能提速。另外,我们也根据Greene描述的递归下降算法设计了高效的适合SIMD指令的光栅化方法。根据这些设计我们实现了一套平台无关的渲染框架,并且根据该框架在Intel Core i7的Windows平台和神威处理器的Linux平台上都实现了渲染器。结果显示,渲染器在这两个平台上都具有接近线性的可伸缩性。并且在Intel Core i7的Windows平台上,比广泛使用的Mesa3D的单线程渲染管线参考Mesa+Gallium+Softpipe快20倍以上,比其多线程渲染引擎Mesa+Swrast还快2.1-3.3倍。该渲染器使用装箱来减少对内存带宽的需求,并且使锁争用减少。目前该渲染器使用x86上的SSE指令或者神威上的SIMD指令可以并行地渲染四个片元。同时,也利用为SIMD指令优化过的数学函数进行所有的三维变换。通过有技巧地使用处理器上的SIMD和多核并行机制,该渲染器的性能明显优于串行的实现。该渲染器能维持渲染顺序,并且支持多种特性:可以渲染到多个渲染目标,可以定制顶点和片元着色器,支持多边形裁剪,背面等相关剔除操作,深度缓存以及透视矫正纹理映射。另外,由于软件实现的灵活性,我们实现了平台无关的绘制框架,具有高度的可移植性。我们一开始在搭载了Intel Core i7的Windows平台上开发,后来很便利地移植到了搭载了神威处理器的Linux平台上。
【关键词】:软件渲染器 神威 SSE SIMD 多核 多线程
【学位授予单位】:浙江大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP332
【目录】:
- 摘要3-4
- Abstract4-11
- 第1章 绪论11-19
- 1.1 课题背景11-12
- 1.2 相关工作12-14
- 1.3 渲染器分类14-17
- 1.4 本文的主要工作和内容组织17-18
- 1.5 本章小结18-19
- 第2章 渲染器设计和实现概要19-28
- 2.1 串行渲染管线19-20
- 2.2 并行优化20
- 2.3 渲染管线概览20-27
- 2.3.1 数据流22-23
- 2.3.2 渲染器的关键接口23-24
- 2.3.3 渲染管线的并行处理流程24-27
- 2.4 本章小结27-28
- 第3章 渲染管线处理阶段28-37
- 3.1 几何处理28-31
- 3.1.1 顶点变换28-29
- 3.1.2 三角形剔除29-31
- 3.2 光栅化简述31-32
- 3.3 片元处理32-36
- 3.3.1 属性插值的计算33-36
- 3.4 本章小结36-37
- 第4章 光栅化37-53
- 4.1 光栅化简介37-40
- 4.1.1 半空间测试37-38
- 4.1.2 填充规则38-40
- 4.2 经典光栅化算法40-42
- 4.2.1 扫描转换算法40-41
- 4.2.2 印章横扫算法41-42
- 4.3 多核与SIMD并行优化42-51
- 4.3.1 光栅化过程高层概览42-46
- 4.3.2 装箱46-49
- 4.3.3 区块内部的光栅化49-51
- 4.4 本章小结51-53
- 第5章 渲染器的性能53-62
- 5.1 性能考量53-54
- 5.2 Intel Core i7和神威处理器架构54-55
- 5.3 Intel Core i7和神威上的性能表现55-61
- 5.4 本章小结61-62
- 第6章 总结与展望62-64
- 6.1 工作总结62
- 6.2 未来工作展望62-64
- 参考文献64-67
- 作者简历67-68
- 致谢68
【相似文献】
中国期刊全文数据库 前10条
1 张为华;臧斌宇;王晔;钱兴隆;朱传琪;;基于共享向量的二维SIMD调度算法[J];计算机学报;2006年10期
2 李璞;孙亚辉;;64位环境SIMD性能优化技术研究[J];计算机与信息技术;2007年04期
3 卜士喜;竺红卫;;软件SIMD的研究及应用[J];计算机工程;2010年19期
4 侯永生;赵荣彩;黄磊;韩林;;面向SIMD扩展部件的循环优化研究[J];计算机科学;2014年05期
5 张为华;臧斌宇;;共享主存多SIMD结构及编译技术研究[J];计算机科学与探索;2009年01期
6 郭阳;丁伟;李振涛;;高性能算术SIMD模块的电路设计[J];微电子学与计算机;2010年09期
7 侯永生;赵荣彩;高伟;朱嘉枫;;SIMD扩展部件数据依赖关系约束条件研究[J];信息工程大学学报;2014年01期
8 吴松,章勇,姚庆栋;嵌入式SIMD控制核的设计研究[J];浙江大学学报(工学版);2001年02期
9 周西汉,刘勃,周荷琴,袁非牛;一种基于奔腾SIMD指令的快速背景提取方法[J];计算机工程与应用;2004年27期
10 张倩;;二维SIMD结构的低功耗调度[J];计算机工程;2009年10期
中国重要会议论文全文数据库 前7条
1 梅家祥;王永文;邢座程;;SIMD模式下访存单元的验证[A];第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集(A辑)[C];2011年
2 付光远;;基于SIMD-MPP并行模型的图像调度与映射方法研究[A];2006年全国开放式分布与并行计算机学术会议论文集(三)[C];2006年
3 高巍;宋妍;;基于SIMD体系结构的数据相关控制语句转化方法[A];2009年全国开放式分布与并行计算机学术会议论文集(上册)[C];2009年
4 朱明慧;;ADI浮点DSP软件编程中的指令并行与SIMD应用[A];中国航空学会信号与信息处理专业全国第八届学术会议论文集[C];2004年
5 李彦洁;庞一;孙立峰;;多视点视频编码中的SIMD优化研究[A];第四届和谐人机环境联合学术会议论文集[C];2008年
6 Liangchun Xu;Hongping Zhang;Wenfei Guo;Di Zhang;;A new SIMD correlatoralgorithm for GNSS software receivers toprocess complex IF data[A];第四届中国卫星导航学术年会论文集-S7 北斗/GNSS用户终端技术[C];2013年
7 吴铁彬;刘衡竹;杨惠;张剑锋;侯申;;一种快速SIMD浮点乘加器的设计与实现[A];第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集(B辑)[C];2011年
中国博士学位论文全文数据库 前7条
1 杨惠;面向性能的SIMD DSP指令流调度技术研究[D];国防科学技术大学;2014年
2 张为华;共享主存多SIMD结构编译优化及结构研究[D];复旦大学;2006年
3 李玉祥;面向非多媒体程序的SIMD向量化方法及优化技术研究[D];中国科学技术大学;2008年
4 张凯;向量SIMD DSP上高效矩阵运算技术研究[D];国防科学技术大学;2013年
5 朱嘉华;SIMD编译优化方法研究[D];复旦大学;2005年
6 姜伟华;针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化[D];复旦大学;2005年
7 魏帅;面向SIMD的向量化算法及重组技术研究[D];解放军信息工程大学;2012年
中国硕士学位论文全文数据库 前10条
1 沈阳;基于SIMD指令的多核软件渲染器的设计与实现[D];浙江大学;2015年
2 张倩;二维SIMD结构的低功耗调度[D];复旦大学;2008年
3 李璋辉;支持浮点融合乘加的SIMD运算部件设计优化及实现[D];国防科学技术大学;2013年
4 杨明;基于存储访问的SIMD优化技术研究[D];解放军信息工程大学;2011年
5 刘楷;基于SIMD结构的高性能DSP处理器评测程序的优化与实现[D];西安电子科技大学;2012年
6 陈向;SIMD数据置换指令的自动生成与优化[D];国防科学技术大学;2010年
7 彭永克;基于SIMD架构的二维DCT/IDCT变换电路模块的设计与实现[D];上海交通大学;2008年
8 肖玮;二维SIMD结构的编译优化与功耗研究[D];复旦大学;2008年
9 王迪;SIMD编译优化技术研究[D];浙江大学;2008年
10 高伟;面向SIMD的自动向量化优化技术研究[D];解放军信息工程大学;2013年
本文关键词:基于SIMD指令的多核软件渲染器的设计与实现,由笔耕文化传播整理发布。
本文编号:305421
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/305421.html