zoukankan      html  css  js  c++  java
  • c++中进行矩阵运算如何才能比matlab快?

    欧巴不知道你值的是那些操作,如果是乘法,算法所限,你不可能有本质的提高。又比如求逆,相信广大屌丝程序员立马会意识到:高斯-乔丹,小于五阶用伴随除矩阵以行列式,然后用SSE优化浮点速度。想再快就得去翻论文了,可是matlab那群鸟人,就是写论文的人,他们的数学知识是我等码农无法相比的,而matlab十几年前就在做SSE优化。你唯一能做的就是算法上的突破,一旦逆袭高斯-乔丹算法,你必将为国争光,名垂青史。
    不过作为一个屌丝,你得明白,必须要抓住一切机会逆袭,因为题目只要求快,其他的限制一概没有,而matlab好像只有在特定情况下,才会有并行支持,所以逆袭计划如下:
    1 去换块好的显卡,最好是geforce泰坦.
    2 去下个opencl
    3 把数据发到泰坦上,开个1000条线程算,就用最通用G-J算法好了。
    4 完爆matlab。
    其实在着色器里算,更快,因为着色器对程序的控制流程有一定限制,目的就是为了速度,而且着色器的并行程度比matlab高。
    当然你也许会问,你这屌丝都懂的问题,别人matlab怎么可能不知道?他们还真知道,不过matlab需要支持任意精度,而且他不知道你啥时候需要并行,啥时候不需要,也不知道你的显卡是啥。至于最新的matlab版本是否支持基于GPU的并行计算,这个俺也不知道,好久没玩过了。如果支持的话,你就省事了。
    其实你可以去关注一下并行计算的三方库,特别是那些支持OpenCL的。
  • 相关阅读:
    c#_表单处理方式
    C#_在.net中序列化读写xml方法的总结
    Jquery_异步上传文件多种方式归纳
    C#_Jquery无刷新上传
    构造方法的作用
    ssh项目问题01,为创建数据库抛出的异常
    成员方法的使用及其调用
    静态页面的使用和操作
    oa项目环境搭建的操作步骤详解
    写做顺序
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6103925.html
Copyright © 2011-2022 走看看