返回介绍

第6章 矩阵和矢量计算

发布于 2024-01-25 21:44:08 字数 665 浏览 0 评论 0 收藏 0

读完本章之后你将能够回答下列问题

矢量计算的瓶颈在哪里?

我可以用什么工具查看CPU进行计算时的效率?

numpy为什么比纯Python更适合数值计算?

cache-miss和page-faults是什么?

我如何追踪代码中的内存分配?

无论你尝试在计算机上解决什么问题,你都会在某个时候遇到矢量计算。矢量计算是计算机工作原理不可或缺的部分,也是在芯片层次上对程序运行时间进行加速所必须了解的部分——计算机只知道如何对数字进行操作,而了解如何同时进行多个这样的计算能够加速你的程序运行。

在本章,我们通过解决一个相对简单的数学问题,扩散等式求解,来揭示这个问题的复杂度并理解CPU层面上发生了什么。通过理解Python代码如何影响CPU以及如何有效探测这些影响,我们就可以举一反三地学习如何理解其他 问题。

我们将首先介绍扩散等式问题并提供一个纯Python的快速解决方案。我们随后会指出该方案中的一些内存问题并试图用纯Python解决它们,我们会介绍numpy并验证它是如何以及为什么能够加速我们的代码的。然后我们会开始进行一些算法的改变并特化我们的代码来解决手上的问题。通过移除我们所使用的库中的一些通用性函数,我们就能够再一次提升速度。最后我们会介绍一些额外的模块,它们将帮助我们在实际工作中简化这种流程,然后浏览一个小故事,告诫我们不要急于在性能分析之前进行优化。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文