写点什么

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

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

关注

评论

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

QCN9024 with IPQ4019|Wallys Dual Band Card DR9074E: Unleash the Power of Open Source Networking

wallyslilly

IPQ4019 QCN9074

百度AICA首席AI架构师培养计划第七期毕业,大模型深入产业见成果

飞桨PaddlePaddle

架构师 大模型 AICA

用友BIP数智干部管理——数管干部 人才强企

用友BIP

数智干部管理

多模态对比语言图像预训练CLIP:打破语言与视觉的界限

汀丶人工智能

人工智能 自然语言处理 计算机视觉 GPT 多模态大模型

苹果mac电脑矢量插画设计推荐 Illustrator 2024 补丁激活版中文

mac大玩家j

Mac软件 矢量设计 Mac软件矢量工具

可视化(Visual) SQL初探

数新网络官方账号

数据库 sql #数据库

用友BIP,IoT在光伏行业的应用

用友BIP

物联网 智能制造

企业内部外网向内网传输文件如何实现高效安全?

镭速

内外网数据交换 内部外网隔离

第18期 | GPTSecurity周报

云起无垠

数字化转型如何落地?

优秀

数字化转型 数字化业务转型

40 + 专家齐聚共谋数据未来,StarRocks Summit 2023 议程公布!更多精彩议题等你探索...

StarRocks

数据库 OLAP StarRocks

专业好用的多媒体播放器Infuse 最新版中文

胖墩儿不胖y

Mac软件 多媒体播放器

全球业务 | 用友废钢智能判级系统在日本成功通过验收

用友BIP

废钢智能判级

企业通关必备,iPaaS应该这样搭建

RestCloud

应用集成 ipaas 应用与数据集成

中企出海 | 中建材、红狮、华润、华新都在做的事儿!

用友BIP

中企出海

HDFS架构介绍

数新网络官方账号

大数据 hdfs 架构-

写出一个复杂的SQL步骤

程序员万金游

#数据库 #java #Mysql #SQL

Hazelcast IMDG 概览

数新网络官方账号

数据库 #数据库

ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑

汀丶人工智能

Elastic Search 搜索系统

超2000个大模型应用,支持文心4.0!AI Studio星河大模型社区升级上新

飞桨PaddlePaddle

飞桨 AI Studio 星河社区 文心大模型4.0

如何选择最适合你的香港服务器服务?五大优势你不可不知

一只扑棱蛾子

香港服务器

1.从零开始学Windows批处理编程系列之基础介绍

全栈工程师修炼指南

编程 windows 批处理 运维学习之路

EVE-NG的环境导入IOL组件

小魏写代码

如何选择安全又可靠的文件数据同步软件?

镭速

数据实时同步

Hadoop RPC简介

数新网络官方账号

大数据 hadoop hadoop rpc

Databend 开源周报第 117 期

Databend

独家特性 | 腾讯云大数据ES:一站式索引全托管,自治索引大揭秘!

腾讯云大数据

聊聊 Rust 变量,你学会了吗?

树上有只程序猿

rust

权重修改与预训练模型的应用

百度开发者中心

人工智能 大模型

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