最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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:283163
用户头像

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

关注

评论

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

MobTech 秒验|助力预热618

MobTech袤博科技

2023年互联网大厂高频Java面试题(附答案)整理总结

架构师之道

Java 面试

Java性能分析工具JProfiler注册码下载

Rose

JProfiler激活码 JProfiler Mac永久激活版 Java 分析器 JProfiler中文版 JProfiler下载

什么是研发 Lead Time?我悟了!

LigaAI

DevOps 敏捷开发 研发速率 研发效能管理 企业号 5 月 PK 榜

完整版来了!阿里Dubbo技术负责人准备的源码教程,很有大厂风格

Java你猿哥

Java 架构 dubbo ssm

阿里云AnalyticDB(ADB) + LLM:构建AIGC时代下企业专属ChatBot

科技热闻

500行代码手写docker开篇-goland远程编译环境配置

蓝胖子的编程梦

Docker 容器 云原生 k8s 命名空间

Java面试题1000+附答案大全(合适各级Java开发人员)

采菊东篱下

Java

Photoshop 2023 如何切换语言?

Rose

Photoshop 2023下载 如何切换PS语言 PS 2023破解

IDO&IEO盘点,包括PoseiSwap等即将面向市场的潜力打新活动

西柚子

全球分布式云大会:AntDB超融合流式实时数仓,打造分布式数据库新纪元

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

airasia Superapp × HMS Core:便捷出行,悦享全程

HMS Core

HMS Core

上海丨阿里云 Serverless 技术实战营邀你来玩!

Serverless Devs

阿里云 Serverless 中间件

用好kafka,你不得不知的那些工具

JAVA旭阳

Java kafka

「聊天机器人构建、智能文档问答」大模型应用开发实操课程来了

飞桨PaddlePaddle

AIGC Prompt

【5.12-5.19】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

LED显示屏技术升级方向介绍

Dylan

技术 升级 LED显示屏

全靠这份阿里大佬的“Java进阶面试手册”收获蚂蚁offer

Java你猿哥

Java kafka Spring Boot Netty java面试

如何进行测试分析与设计-HTSM启发式测试策略模型 | 京东云技术团队

京东科技开发者

测试 测试策略 企业号 5 月 PK 榜 HTSM

龙蜥开发者说:构建软件包?不,是构建开源每一个角落!| 第 20 期

OpenAnolis小助手

开源 操作系统 龙蜥社区 开发者说 优秀贡献奖

为世界第一大癌症高效研发首创新药,AI大模型助力药物研发叩开未来之门

飞桨PaddlePaddle

百度飞桨

为什么 GPU 更适用于时域算法,而 CPU 更适用于频域算法?

思茂信息

gpu cpu 计算机 电脑 电脑硬件

Java常用对象映射工具的介绍和使用

echoes

原型设计Axure RP 9中文授权码【Mac/win】

Rose

Axure RP 9汉化 Axure RP 9授权码 产品原型设计工具 axure rp9下载 axure rp9安装教程

【实践篇】教你玩转JWT认证---从一个优惠券聊起 | 京东云技术团队

京东科技开发者

分布式 JWT 企业号 5 月 PK 榜

RocketMQ你不得不了解的 Rebalance机制源码分析

Java你猿哥

Java 源码 RocketMQ ssm client

DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

HarmonyOS开发者

HarmonyOS

速下载!交通业数据安全政策汇编发布

极盾科技

数据安全

【GPT-4理论篇-1】GPT-4核心技术探秘 | 京东云技术团队

京东科技开发者

人工智能 openai GPT-4 企业号 5 月 PK 榜

常用的表格检测识别方法 - 表格区域检测方法(下)

合合技术团队

人工智能 文字识别 表格识别 表格检测

上线半天下载量破100W!美团大佬的Java性能调优实战手册,超详细

Java你猿哥

Java JVM 多线程 ssm 性能调优

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