使用任务(而非线程)
使用任务(而非线程) (PDF 190KB)摘要任务是一种轻量级线程替代方案,借助它可提高启动和关机速度,实现更好的负载平衡,高效使用可用资源以及提高抽象化水平。 英特尔® 线程构建模块(英特尔® TBB)和 OpenMP* 都是包括基于任务编程的编程模式。 本文将简要介绍基于任务的编程,并指导您应在何时使用线程、何时使用任务。本文是“英特尔多线程应用开发指南”系列的一部分,该系列介绍了针对英特尔®...
View Article利用有序数据流中的数据并行性
利用有序数据流中的数据并行性 (PDF 209KB)摘要许多计算密集型应用都涉及从有序输入数据到有序输出数据的复杂转换。 例如声音与视频代码转换、无损数据压缩,以及地震数据处理。 然而这些转换中使用的算法通常都是并行的,所以管理 I/O 顺序依赖性将面临挑战。...
View Article借助英特尔® 编译器实现自动并行化
借助英特尔® 编译器实现自动并行化 (PDF 242KB)摘要通过多线程化应用来提高性能是一件十分耗时的工作。 对于多数计算在简单循环内执行的应用来说,英特尔® 编译器可以自动生成多线程化的版本。除了高水平的代码优化,英特尔编译器通过自动并行化和OpenMP*功能支持多线程技术。 借助自动化并行功能,编译器可检测能够以并行的方式安全、高效地执行的循环,并生成多线程代码。 OpenMP...
View Article英特尔® 数学核心函数库中的并行性
英特尔® 数学核心函数库中的并行性 (PDF 171KB)摘要软件库可帮助程序员轻松地即刻获得多核、多处理器和集群计算系统的卓越性能优势。 英特尔® 数学核心函数库(英特尔® MKL)内含有大量函数,可为数学密集型应用带来巨大优势。 本文将着重描述英特尔 MKL 可如何帮助程序员在普通应用领域获得超凡的串行和并行性能。 此处信息适用于 Windows*、Linux* 和 Mac OS* X...
View Article借助英特尔® Parallel Amplifier 修复线程失衡
借助英特尔® Parallel Amplifier 修复线程失衡 (PDF 302KB)摘要线程应用性能的限制因素之一是负载不平衡。 平衡线程间的工作量对应用性能来说至关重要。 负载平衡的主要目的是最大限度地削减线程的闲置时间,同时以最小的工作分享开销帮助所有线程平均分享工作负载。 英特尔® Parallel Amplifier 为英特尔® Parallel Studio...
View Article使用英特尔® Parallel Composer 在代码中添加并行执行能力
摘要开发人员可以选择使用多种方法在代码中引入并行处理能力。 本文概括介绍了使用英特尔® Parallel Composer 进行并行编码的几种方法,并对它们的主要优势进行了比较。 虽然英特尔 Parallel Composer 只适用于 Windows* 环境下的 C/C++ 开发,但许多方法同样适用于 Fortran 语言和 Linux*...
View Article优化数据结构和内存访问模式以改进数据局部性
优化数据结构和内存访问模式以改进数据局部性 (PDF 782KB)摘要高速缓存是最重要的现代 CPU 资源之一:它是体积更小、速度更快的一部分内存子系统,用于保存最常用的内存位置副本。 当驻留在高速缓存中的指令需要数据时,该指令将会立即执行。 否则,指令执行过程可能会中止,直到从内存获取到所需的数据。...
View Article使用英特尔® Inspector XE 2011 发现多线程代码中的数据竞跑
使用英特尔® Inspector XE 2011 发现多线程代码中的数据竞跑 (PDF 288KB)摘要英特尔® Inspector XE是英特尔® Parallel Studio XE 套件产品中的三大组件之一,可用于查找或应用中的错误。英特尔 Inspector XE...
View Article面向英特尔® 架构优化的 Caffe*:使用现代代码技巧
提升深度学习框架的计算性能PDF 版本作者英特尔公司 Vadim Karpusenko 博士,英特尔公司 Andres Rodriguez 博士,英特尔公司 Jacek Czaja,英特尔公司 Mariusz Moczala摘要本文将介绍一种特殊版本的深度学习框架 Caffe*(最初由伯克利愿景和学习中心 (Berkeley Vision and Learning Center,BVLC)...
View Article借助 SIMD 数据布局模板优化数据布局
简介金融服务客户经常需要解决方案能够尽可能快速地分析市场数据。 为此需要持续提升金融算法的性能。 金融算法包含多种模型,包括 Monte Carlo、Black-Scholes、Bonds 等等。 单指令多数据 (SIMD) 矢量编程可显著提高上述工作负载的运行速度。 是否能够实现最佳 SIMD 性能取决于高效的内存访问。 本文将用两种方法运行开源 Quantlib库中面向欧式期权估价的...
View Article借助 SIMD 数据布局模板和数据预处理提高 SIMD 在动画中的使用效率
简介为发挥 SIMD1的最大作用,除了对其进行矢量化处理2外,我们还需作出其他努力。可以尝试为循环添加 #pragma omp simd3,查看编译器是否成功进行矢量化,如果性能有所提升,则达到满意状态。 然而,可能性能根本不会提升,甚至还会降低。 无论处于何种情况,为了最大限度发挥 SIMD 执行的优势并实现性能提升,通常需要重新设计算法和数据布局,以便生成的 SIMD 代码尽可能高效。...
View ArticleOpenGL* 性能提示:相比图像,纹理具有更出色的渲染性能
下载代码示例下载 PDF简介本文讨论了为何使用纹理而非图像可以提升 OpenGL 渲染性能。 为说明这一问题,我们在一款简单的 C++ 应用中轮流使用纹理和图像。 该应用旨在表明使用这两种技术时对渲染性能(每帧毫秒数)的影响。 尽管本文适用于图形游戏开发人员,但这些概念适用于使用 OpenGL 4.3 及更高版本的所有应用。 示例代码用 C ++ 编写,专为 Windows* 8.1 和 10...
View ArticleOpenGL* 性能提示: 原子计数器缓冲区与着色器存储缓冲区对象
下载 PDF [PDF 703 KB] 下载代码示例简介OpenGL* 提供了两种存储和检索数据的机制,作为着色器的输入和输出。 游戏开发人员可以选择着色器存储缓冲区对象 (SSBO) 或原子计数缓冲区(ACB)。 本文演示了编写图形密集型游戏时,使用 ACB 替代 SSBO 没有实际的性能优势。本文随附了一个可在 SSBO 和 ACB 之间交替的简单 C++ 应用。...
View ArticleUnreal Engine* 4 如何助力 Disc Jam* 在英特尔® 处理器显卡上达到 60 fps
大家好! 我是来自 High Horse Entertainment 的 Jay,我们是来自洛杉矶的一个两人团队。 我们最初创立 High Horse 的宗旨是开发具有现代图形、控制方案,以及激烈在线竞争性的街机游戏。 我们的第一个项目 Disc Jam* 是一款街机运动类游戏,游戏成功的关键是时机和反应。 如果您有兴趣一试,可以登录 www.discjamgame.com免费获取初期测试版的...
View Article《月之猎人 (Moon Hunters)》主角设计
游戏开发人员,你们好! 我是 Kitfox Games 工作室的总监 Tanya,我们的工作室位于加拿大的蒙特利尔,拥有六名员工。 我们 3 月份发布了《月之猎人》游戏的桌面版,7 月份发布了该游戏的 PS4 版。 《月之猎人》具有六种玩家等级,大家经常问我们如何为他们设计游戏可玩性。 简而言之就是迭代。...
View Article在配有英特尔® Iris™ 显卡的系统上对 Just Cause 3 进行优化增强
下载文档高端 PC 继续通过高性能显卡驱动桌面游戏。 一流的“梦想机器”基于第六代智能 英特尔® 酷睿™ 处理器i7-6700K等 CPU,通常与高端独立显卡配合使用以运行要求最严苛的游戏。 由 Avalanche Studios*开发、由 Square Enix*发布的 Just Cause 3就是这样一款游戏。 作为 2015...
View ArticleOutfit7 庆祝其开发工作大获丰收
下载文档走不寻常路之经验总结每位合格应用开发人员都拥有相同的目标:灵机一动,构建独创性原型,克服各种困难,最终吸引投资者将其想法推向市场。 名声、财富以及构建更多应用的机会将接踵而至。 焦虑、改善和重复是开发过程不可避免的阶段。然而,移动应用和游戏的规则在不断变化。 以开发《Talking Tom and Friends》的公司 Outfit7为例,这款特许经营的游戏应用基于简单的对讲概念。...
View ArticleOpenGL* 性能提示: 避免同步 CPU 和 GPU 的 OpenGL 调用
下载 PDF下载代码示例简介为了从 OpenGL* 中获得最高水平的性能,您希望避免强制 CPU 和 GPU 之间同步的调用。 本文介绍了其中几个调用和避免使用它们的方法, 此外还提供了一个 C++ 示例应用,该应用可显示出其中一些调用对于渲染性能的影响。 尽管本文是指图形游戏开发,但这些概念适用于使用 OpenGL 4.3 及更高版本的所有应用。 示例代码用 C ++ 编写,专为 Windows*...
View Article用于渲染虚拟现实的投影方法的比较
作者:英特尔公司Robert Toth、Jim Nilsson和 Tomas Akenine-Möller虚拟现实正在迅速普及,可能很快成为观看 3D 环境的常见方式。 虽然现在已经在消费级图形处理器上执行了立体渲染,但是新的虚拟现实显示设备具有两个典型应用之前无需考虑的属性。 常规网格上不再出现像素,显示器提供宽视角。 在本文中,我们评估了几种专为有效渲染具有此类属性的头戴式显示器的方法。...
View ArticleOpenGL* 性能提示: 使用本机格式,实现最佳渲染性能
下载 [PDF 703KB]从 Github 下载代码示例简介游戏开发人员经常使用 OpenGL 来处理图形密集型游戏的渲染工作。 OpenGL 是一种用于高效渲染二维和三维矢量图形的应用程序接口。 大部分平台上都有 OpenGL 。本文演示了使用合适的纹理格式如何改进 OpenGL 性能,特别是使用本机纹理格式将为游戏开发人员提供最出色的 OpenGL 性能。 本文随附一个 C++...
View Article