浅谈C\C++代码优化中的一些小技巧



浅谈C\C++代码优化中的一些小技巧

编写C\C++程序快两年,对于代码优化有很深的感触。个人认为,代码优化是一门很深的学问,而作为码农,我们总是在实践中不断更新自己对它的认识和理解。对于这个很大很深的问题,我只是根据自己的所学所见以及所悟来谈谈代码优化中的效率问题,希望对初学者有一些帮助,如有不对的地方还望指正。

一、定义

所谓代码优化是指在不改变程序运行结果的前提下,使最终生成的目标代码的运行时间更短,时空效率得到优化。这里,我结合自己的图像处理方面的一些经历谈谈如何如何减少运行时间、提高运行效率。个人认为主要包括硬件加速和软件加速两个方面。

二、硬件加速

顾名思义,硬件加速指的是充分利用计算机现有的的硬件资源编写代码,进而提高代码的运行效率。据我所知,常见的适合计算机的硬件加速方法有:GPU,OpenMP以及SSE。

GPU

GPU(Graphic Processing Unit)是图像处理器,它是显卡的大脑,早期主要用于电脑的2D\3D图形计算。随着科技的发展,GPU开始在并行计算等方面得到广泛的应用,其优势在于它包含很多小的独立处理单元,这些处理单元可以并行运算。这一特点决定了GPU相对于CPU而言在并行数据的处理上具有更大的优势,如图像处理中的计算梯度、反转灰度等运算。

关于GPU编程,首先需要硬件上的支持,即计算机需要有独立显卡,其次需要软件上的支持,即编程环境以及相应的GPU接口,如VS2008和NVIDIA的CUDA。CUDA是NVIDIA推出的一个GPU运算平台,我们可以理解API。一般而言,如果我们的电脑有独立显卡,在安装显卡驱动、CUDA开发包以及编程环境(如VS2008)之后,我们便可以在相应的工程项目中嵌入.cu格式的文件用于GPU编程。有关GPU编程的详细过程这里就不详细叙述了,感兴趣的同学可以参考CUDA提供的用户手册以及《GPU高性能编程CUDA实战》一书,前者比较详细,后者比较易懂。

OpenMP
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值