写点什么

Visual Studio 如何提高 C++ 性能

  • 2012-11-28
  • 本文字数:941 字

    阅读完需:约 3 分钟

在 Build 2012 开发者大会上,Jim Radigan 和 Don McCrady 做了一个演讲,讨论了改进的 Visual Studio 2012(VS2012)编译器为 C++ 程序开发者带来了哪些益处。Radigan 首先从最初的 Pentium 处理器的出现开始对计算能力不断提高的历史进行了简要的概述,继而引出了自己的话题“一切都是为了性能:使用 Visual C++ 2012 最大化硬件利用率”。

第一代 Pentium 处理器有 310 万个晶体管,而目前这一代 Ivy Bridge 处理器有 14 亿个晶体管。正如 McCrady 之后所提到的,C++ AMP 允许开发者通过一种语言来使用这一切——包括 CPU 以及越来越多地集成于 CPU 内核(CPU Dies)中的 GPU(不包括独立扩展卡之中的 GPU)。

与一般的代码相比,以 C++ AMP 为目标的代码往往能够提供最佳性能,接下来 Radigan 提到了 VS2012 中的自动矢量化和自动并行化优化,这意味着在很多情况下仅重新编译已有的 C++ 代码就能直接获益。这也导致了 VS2012 中优化器的大小是之前版本中的两倍。

开发者想要确保编译器检查代码从而进行加速时,可以对代码片段进行标记。下面的编译器指令

复制代码
#pragma loop(hint_parallel(4))

允许开发者向编译器提供线索:包含该编译器指令的循环应该被扩展到多个核上(该代码片段中是 4 个核)。当然,编译器依然会进行全面的分析,所以如果被标记的代码块不适合并行化,那么编译器就不会进行任何优化。

Radigan 通过一个光线跟踪的演示证明了仅是简单地在 VS2012 下重新编译源代码就带来了 16 倍的性能提升。Radigan 强调说,尽管 VS2012 改进了编译器性能,但是并没有能够自动产生更快速的代码的“灵丹妙药”。编译器团队会继续寻求创新,因为 Windows8、SQL Server 以及 Office 都是 C++ 应用程序。

Radigan 指出虽然现在并没有任何可用的东西,但是他想向 AMP 中添加原生的 C#支持。(目前 C#开发者能够通过 P/Invoke使用 AMP。)最后,C++ AMP 规范是一个开放标准,但是现在 Apple 的平台(iOS 或者 Mac OS X)上并没有相应的实现,但是理论上是可以的。

英文原文地址 http://www.infoq.com/news/2012/11/vs2012_CPP


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-11-28 07:283714
用户头像

发布了 321 篇内容, 共 132.9 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

测试左移

BY林子

软件测试 敏捷测试

this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)

Immerse

Wallys launches high-performance Tri-Band solutions/ipq4019+qca9882.

Cindy-wallys

IPQ4019 QCA9882 ipq4029

蚂蚁集团云原生智能容量技术 KapacityStack 正式开源

TRaaS

GitHub 开源 蚂蚁集团

openEuler 开源汇智赢未来|2023开放原子全球开源峰会 openEuler 论坛成功召开

openEuler

开源 操作系统 openEuler 资讯

里氏替换原则究竟如何理解?

磐远

Java 设计模式 设计原则 里氏替换

使用华为云开发者插件一键部署应用到ECS

ide 云计算 插件 华为云

架构成长之路 | 图解分布式共识算法Paxos教会协议

阿里技术

paxos协议 分布式算法

Abaqus有限元分析技术应用于卫星强度校核

思茂信息

abaqus abaqus软件 abaqus有限元仿真 有限元仿真技术

中盐集团:以财务共享为基础,引领盐行业数智化转型

用友BIP

财务共享

BeautifulPrompt:PAI推出自研Prompt美化器,赋能AIGC一键出美图

阿里云大数据AI技术

人工智能 AIGC Prompt 企业号 6 月 PK 榜

2023 PlatformCon 平台工程大会回顾

杨振涛

平台工程 内部开发者平台 内部开发者门户 平台工程大会 平台团队

【有奖体验】叮!你有一张 3D 卡通头像请查收

Serverless Devs

Serverless 函数计算FC

直播回顾|走进元服务,携手小强停车探索鸿蒙新流量阵地

HarmonyOS SDK

HMS Core

深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解

汀丶人工智能

人工智能 深度学习 推荐系统 搜索推荐 6 月 优质更文活动

理解 与 计算 物联网产品的电池使用寿命

矜辰所致

物联网 低功耗计算 电量计算 6 月 优质更文活动

原点安全携“金融机构消费者个人信息保护解决方案”亮相 2023 中国金融数字化转型发展大会

原点安全

数据安全 金融机构 个人信息保护

libpq SDK 发送 SQL 和解析结果

KaiwuDB

sql KaiwuDB

低代码开发平台为数智赋能,让开发变得更简单

引迈信息

前端 低代码 JNPF

深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比

汀丶人工智能

人工智能 深度学习 推荐系统 搜索算法 6 月 优质更文活动

2023开放原子全球开源峰会高峰论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 高峰论坛

STM32+DHT11监测环境的温湿度

DS小龙哥

6 月 优质更文活动

成败关键!一对一直播源码平台搭建需要的条件

山东布谷科技

软件开发 源码搭建 一对一直播源码 直播源码

系统重构实施,百亿级核心交易如何保证准确性?

鲸品堂

计费模式 对账系统 企业号 6 月 PK 榜

插件化工程R文件瘦身技术方案 | 京东云技术团队

京东科技开发者

企业号 6 月 PK 榜 R文件 文件瘦身 插件化工程

OpenHarmony工程模板和开发语言

坚果

OpenHarmony 6 月 优质更文活动

安全问题我们需要重视,立刻升级fastjson2

源字节1号

开源 软件开发 后端开发 小程序开发

瓴羊Quick BI:企业数据分析的利器

夜雨微澜

Visual Studio如何提高C++性能_语言 & 开发_Jeff Martin_InfoQ精选文章