写点什么

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

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

关注

评论

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

医学影像软件开发的技术框架

北京木奇移动技术有限公司

医学影像 软件外包公司 webgl开发

从网络到支撑系统,GenAI将给运营商带来哪些变化?

鲸品堂

通信运营商 GenAI 企业号 2025年1月PK榜

马斯克、黄仁勋共同“打响”2025年全球人形机器人商业化第一

机器人头条

英伟达 科技 特斯拉 人形机器人 具身智能

“考公”有捷径?Milvus助力粉笔教育构建个性化考公RAG

Zilliz

Milvus rag 粉笔教育 图搜召回

智源研究院发布2025十大AI技术趋势

智源研究院

智慧公厕解决方案:定制化服务,满足多样化需求

光明源智慧厕所

论文解读 | OS Agents: A Survey on MLLM-based Agents for General Computing Devices Use

OSAgentSurvey

智能体 GUI 大语言模型 多模态大模型 论文解读

EasyExcel碰到问题记录

京东科技开发者

医学影像软件的开发

北京木奇移动技术有限公司

医学影像 软件外包公司 webgl开发

DeepSeek-V3模型:软件测试智能化的新篇章与挑战

测试人

软件测试

你有一份待查收的TextIn文档解析内测邀请函!

合合技术团队

图像识别 #人工智能 文档解析技术 弯曲矫正

医学影像软件的开发的技术难点

北京木奇移动技术有限公司

医学影像 软件外包公司 webgl开发

妙啊!VSCode Python 终端环境隔离的背后原理

秃头小帅oi

对话4位技术大咖,探秘华为开发者空间打破壁垒,实现跨平台协作

华为云开发者联盟

医学影像软件的开发流程

北京木奇移动技术有限公司

医学影像 软件外包公司 webgl开发

万字长文:京东保险供应链的前世今生

京东科技开发者

AI Agent:软件测试自动化的新纪元

测试人

软件测试

英伟达首席工程师Corey: HNSW+CPU过时了!GPU+RAPIDS cuVS才是向量检索最优解

Zilliz

gpu cpu 英伟达 向量检索 Milvus

Spring缓存注解浅析及实践

京东科技开发者

想要冲击腾讯的朋友不要错过

王中阳Go

腾讯 面经

AI正在如何重塑未来职业发展路径?

天津汇柏科技有限公司

AI 人工智能

内置大语言模型的绿联AI NAS私有云存储惊艳CES,酷睿Ultra为AI算力保驾护航

E科讯

鸿蒙 NEXT 开发中,普通对象跨线程如何传递

威哥爱编程

HarmonyOS HarmonyOS NEXT HarmonyOS5.0

像素间距小型化趋势明显,将加速LED小间距市场发展

Dylan

技术 LED显示屏 led显示屏厂家 户内led显示屏 市场

去哪儿国际酒店AI生成视频实践

Qunar技术沙龙

人工智能 AI视频

社交软件红包技术解密(四):微信红包系统是如何应对高并发的

JackJiang

网络编程 即时通讯 IM

IT运维大侠的秘密武器-堡垒机简单介绍

行云管家

堡垒机 IT运维 运维‘

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