Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matlab矩阵乘法速度

Matlab矩阵乘法速度
EN

Stack Overflow用户
提问于 2012-10-04 07:02:42
回答 2查看 3.1K关注 0票数 7

我想知道matlab怎么能这么快地把两个矩阵相乘。将两个NxN矩阵相乘时,将执行N^3次乘法。即使使用Strassen Algorithm,它也需要N^2.8次乘法,这仍然是一个很大的数字。我正在运行以下测试程序:

代码语言:javascript
运行
AI代码解释
复制
a = rand(2160);
b = rand(2160);
tic;a*b;toc

使用2160是因为2160^3=~10^10 ( a*b应该是大约10^10次乘法)

我得到了:

代码语言:javascript
运行
AI代码解释
复制
Elapsed time is 1.164289 seconds.

(我在2.4 and笔记本上运行,没有线程发生),这意味着我的计算机在1秒多一点的时间内进行了~10^10次操作。

怎么会这样呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 07:20:09

它是几个东西的组合:

  • Matlab确实使用向量指令对multi-thread.
  • The核心进行了大量优化。

这是我机器上的数字:核心i7 920 @ 3.5 GHz (4核)

代码语言:javascript
运行
AI代码解释
复制
>> a = rand(10000);
>> b = rand(10000);
>> tic;a*b;toc
Elapsed time is 52.624931 seconds.

任务管理器显示CPU使用的4个核心。

现在来做一些数学运算:

代码语言:javascript
运行
AI代码解释
复制
Number of multiplies = 10000^3 = 1,000,000,000,000 = 10^12

Max multiplies in 53 secs =
    (3.5 GHz) * (4 cores) * (2 mul/cycle via SSE) * (52.6 secs) = 1.47 * 10^12

所以Matlab正在实现1 / 1.47 = 68%效率的最大可能吞吐量。

我看不出有什么异常。

票数 13
EN

Stack Overflow用户

发布于 2012-10-04 07:51:34

要检查是否在MATLAB中使用多线程,请使用以下命令

代码语言:javascript
运行
AI代码解释
复制
maxNumCompThreads(n)

现在我有一个Corei7-2620M,它的最大频率是2.7 the,,但是它也有一个turbo mode with 3.4GHz。CPU有两个核心。让我们看看:

代码语言:javascript
运行
AI代码解释
复制
A = rand(5000);
B = rand(5000);
maxNumCompThreads(1);
tic; C=A*B; toc
Elapsed time is 10.167093 seconds.

maxNumCompThreads(2);
tic; C=A*B; toc
Elapsed time is 5.864663 seconds.

所以就有了多线程。

让我们来看看单CPU的结果。A*B执行大约5000^3次乘法和加法。因此,单线程代码的性能是

代码语言:javascript
运行
AI代码解释
复制
5000^3*2/10.8 = 23 GFLOP/s

现在是CPU。3.4Avx,沙桥每个周期最多可以做8次GHz:

代码语言:javascript
运行
AI代码解释
复制
3.4 [Ginstructions/second] * 8 [FLOPs/instruction] = 27.2 GFLOP/s peak performance

因此,单核性能约为85%的峰值,这在这个问题上是可以预期的。

你真的需要深入研究你的CPU的能力,以获得准确的性能估计。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12721912

复制
相关文章
WPF 将 docx 的 Word 文件转换为 FlowDocument 显示
在 Office 文档解析 文档格式和协议 咱可以了解到 Word 文档只是一个压缩文件里面的文件使用 xml 表示
林德熙
2020/08/07
1.6K0
Word 神器 python-docx
前两天有个朋友向我求助,她在写毕业论文时,不小心将论文里的中文双引号替换为英文的了,各种原因导致无法回退,8万多字的论文,眼看就要交了,该怎么办?
纯洁的微笑
2020/04/01
2.9K0
Word 神器 python-docx
用golang在服务端将html转为word(docx)尝试
我用goquery+github.com/unidoc/unioffice来尝试一下。
hotqin888
2019/12/20
8.3K0
用golang在服务端将html转为word(docx)尝试
python-docx操作word文件(
document.add_paragraph()之后,默认paragraph的内容到第一个run中。
py3study
2020/01/17
1.5K0
python_docx制作word文档
Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。
py3study
2020/01/15
3.1K0
python_docx制作word文档
Python-Word模板填充-docx
docxtpl 按指定的word模板填充内容 安装 pip install docxtpl 示例 from docxtpl import DocxTemplate data_dic = { 't1':'燕子', 't2':'杨柳', 't3':'桃花', 't4':'针尖', 't5':'头涔涔', 't6':'泪潸潸', 't7':'茫茫然', 't8':'伶伶俐俐', } doc = DocxTemplate('tpl.docx') #加载模板文件 doc.render(data_dic) #
py3study
2020/01/16
2.8K0
Python-Word模板填充-docx
Python 向word(docx)中输
如果python2安装后不能使用(找不到包),建议直接使用python3,安装代码如下
py3study
2020/01/06
5090
SharePoint下利用DocX组件导出Word
平常开发时,或多或少都需要和Word打交道,特变是编辑、导出Word。 利用DocX,开源的读写Word组件,可以快速帮助我们进行对Word的操作。 DocX官方网站:http://docx.codeplex.com/ DocX主要功能 在文档中(Word)插入,删除或者替换文本,支持所有的标准文本格式,如字体{Family,Size,Color},出体,斜体、下划线、高亮等。 提供段落属性,你可以设置其对其方向,如从左到右,居中对齐等。 DocX同样支持对图片的操作、超链接、表格、页首、页眉等。 最
用户1161731
2018/01/11
1.5K0
SharePoint下利用DocX组件导出Word
HTML转word_怎么把docx转换成word
使用 html-docx.js、FileSaver.js 、wordexport文件
全栈程序员站长
2022/11/04
4.2K0
HTML转word_怎么把docx转换成word
HDFS——如何将文件从HDFS复制到本地
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
星哥玩云
2022/06/30
7K0
word批量doc转docx格式-python
今天想要实现一个功能是将word内容转换成HTML,查看了网上的代码,还是比较简单的,python中的PyDocX类库可以实现功能。但是存在一个问题,就是word2003版本文档后缀是.doc,在后期版本中后缀是.docx。PyDocX只能处理后缀为.docx格式的文档文件。那么就需要将其进行转换。
申霖
2020/03/24
2.2K0
python读取word详解【from docx import Document】
python读取word详解【from docx import Document】
红目香薰
2022/11/30
1.9K0
python读取word详解【from docx import Document】
使用python-docx模块读写word文件
word文档的自动化处理是一件比较头痛的事情,因为深耕于windows操作系统,对于跨平台需求的word文档编辑,是非常痛苦的一件事。在python的生态环境中,提供了python-docx这个模块,可以方便的进行跨平台的word文档处理,但是只适合word 2007以后的文档,即后缀为docx的文档。
生信修炼手册
2020/12/11
1.6K0
Python将md批量转为docx
这两天写毕业论文, 发现了一个可以将markdown快速转为word格式的小工具pandoc, 非常好用, 比如我有一个名为毕业论文.md的文件, 我只需在命令行运行 pandoc 毕业论文.md
zhaoolee
2018/06/14
1.3K0
【c#搬砖记】用Docx导出word格式的docx文件
DocX开源网址:http://docx.codeplex.com/ 1、引入DocX.dll 调用ReplaceText()方法替换模板中的字符。只支持docx格式的word文档 using (DocX docx = DocX.Load(fileDemo)) { docx.ReplaceText("@某某某", tester.name); docx.ReplaceText("@110101198101010001",
阿炬
2018/05/11
1.6K0
初探JavaScript PDF blob转换为Word docx方法
PDF 转Word 是一个非常非常普遍的需求,可谓人人忌危,为什么如此普遍的需求,却如此难行呢,还得看为什么会有这样的一个需求:
葡萄城控件
2021/10/21
3.1K0
Python提取docx格式Word文档中所有尾注
1、用Word或WPS打开一个docx格式的文档,在文档中单击要插入尾注的位置,然后依次单击菜单,如下图所示。
Python小屋屋主
2020/07/16
9110
Python提取docx格式Word文档中所有尾注
CKEditor使用
https://ckeditor.com/ckeditor-4/download/
码客说
2022/09/19
2.5K0
CKEditor使用
python网络爬虫文档读取-微软Word文档和.docx
大约在2008年以前,微软Office产品中的Word用.doc文件格式。这种二进制格式很难读取,而且能够读取word格式软件很少。为了跟上时代,让自己的软件能够符合主流软件的标准,微软决定使用Open Office的类XML格式标准,此后新版Word文件才与其他文字处理软件兼容,这个格式就是.docx。
用户7886150
2021/01/15
1.4K0
点击加载更多

相似问题

理解枕叶卷积

14

列表理解卷积

30

如何理解卷积模型

11

理解Caffe卷积层

10

理解卷积层的形状

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档