图灵奖得主David Patterson:将Python重写为C,性能最高提升1000倍!

简介:

2017年图灵奖得主之一、加州大学教授、Google工程师和RISC先驱David Patterson表示,没有什么是比现在从事计算机系统结构更好的时候了。

那是因为,摩尔定律真的结束了,他说:“如果摩尔定律仍然有效,那我们现在就落后了15倍。我们正处于后摩尔定律时代(post-Moore’s Law era)。”

上周,在圣何塞举行的2018年@Scale会议上,Patterson表示,“我们已经处于性能增长的最后阶段。当性能每18个月翻一番时,人们就会丢掉用得好好的台式电脑,因为他们朋友的新电脑速度要快得多得多。”

但去年,Patterson曾说,“运行单个程序的性能只增长了3%,因此它是每20年翻一番。如果你只是坐在那里等着芯片变得更快,你将不得不等待很长的时间。”

对于像Patterson这样的计算机架构师来说,这实际上是个好消息。他同时指出,这也是软件工程师创新的好机会。“专为处理特定类型计算问题而定制的革命性的新硬件架构和新软件语言,正等待我们去开发,”Patterson说:“这些事情你只要去做,就有机会拿图灵奖。”

作为软件方面的一个例子,Patterson表示将Python重写为C可以使性能提高50倍。加上其他一些优化方法,速度会急剧增加,与原始Python程序相比性能提高1000倍也是完全有可能的

在硬件方面,Patterson认为特定领域架构(domain-specific architectures,DSA)运行得更好。他说:“这不是魔术,只是我们能做的一些事情。”例如,应用程序并不都需要用同样精度的计算。他说,对于有些应用,你可以使用比常规的IEEE 754标准更低精度的浮点运算。

Patterson说,机器学习是现在应用这种新架构和语言的最大机会。“如果你是做硬件的,”他说,“你希望你的朋友都恨不得要更多更多的计算机。”而机器学习对于计算来说是“贪婪的,我们太喜欢了”。

他说,如今,关于哪种类型的计算机架构最适合机器学习,业界有很多争议,有很多公司在不同的架构上下注。谷歌拥有张量处理单元(TPU),每个芯片有一个核心和用软件控制的内存(而非缓存),英伟达的GPU则拥有80多个内核;微软正在走FPGA的路线。

至于英特尔,Patterson表示他们“在所有的赛道上都下了注”,为机器学习推销传统的CPU,收购Altera(这家公司向微软提供FPGA),并且收购Nervana,后者专注于开发神经网络专用处理器(类似于谷歌的TPU)。

除了这些大公司外,Patterson表示至少还有45家硬件初创公司都在解决这个问题,即设计机器学习专用架构。最终,他说,市场将决定一切。

“现在,”他说,“是计算机系统结构的黄金时代。”



原文发布时间为:2018-09-18

本文作者:李静怡

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。

原文链接:图灵奖得主David Patterson:将Python重写为C,性能最高提升1000倍!

相关文章
|
2月前
|
缓存 数据库 索引
如何优化Python Web应用的性能,包括静态资源加载、缓存策略等?
```markdown 提升Python Web应用性能的关键点:压缩合并静态资源,使用CDN,设置缓存头;应用和HTTP缓存,ETag配合If-None-Match;优化数据库索引和查询,利用数据库缓存;性能分析优化代码,避免冗余计算,使用异步处理;选择合适Web服务器并调整参数;部署负载均衡器进行横向扩展。每一步都影响整体性能,需按需调整。 ```
21 4
|
2月前
|
缓存 负载均衡 安全
在Python中,如何使用多线程或多进程来提高程序的性能?
【2月更文挑战第17天】【2月更文挑战第50篇】在Python中,如何使用多线程或多进程来提高程序的性能?
|
16天前
|
存储 缓存 算法
优化Python代码性能的7个技巧
在日常的Python开发中,优化代码性能是一个重要的课题。本文介绍了7个实用的技巧,帮助开发者提高Python代码的执行效率,包括利用生成器表达式、使用适量的缓存、避免不必要的循环等。通过本文的指导,读者可以更好地理解Python代码性能优化的方法,提升自身的编程水平。
|
1月前
|
缓存 监控 算法
优化Python代码性能的10个技巧
提高Python代码性能是每个开发者都需要关注的重要问题。本文将介绍10个实用的技巧,帮助你优化Python代码,提升程序的运行效率和性能表现。无论是避免内存泄漏、减少函数调用次数,还是使用适当的数据结构,都能在不同场景下发挥作用,使你的Python应用更加高效稳定。
|
1月前
|
算法 编译器 开发者
如何提高Python代码的性能:优化技巧与实践
本文探讨了如何提高Python代码的性能,重点介绍了一些优化技巧与实践方法。通过使用适当的数据结构、算法和编程范式,以及利用Python内置的性能优化工具,可以有效地提升Python程序的执行效率,从而提升整体应用性能。本文将针对不同场景和需求,分享一些实用的优化技巧,并通过示例代码和性能测试结果加以说明。
|
3天前
|
消息中间件 程序员 调度
Python并发编程:利用多线程提升程序性能
本文探讨了Python中的并发编程技术,重点介绍了如何利用多线程提升程序性能。通过分析多线程的原理和实现方式,以及线程间的通信和同步方法,读者可以了解如何在Python中编写高效的并发程序,提升程序的执行效率和响应速度。
|
3天前
|
缓存 并行计算 Serverless
优化Python代码性能的5个技巧
在日常Python编程中,代码性能的优化是一个重要的议题。本文介绍了5个实用的技巧,帮助你提高Python代码的执行效率,包括使用适当的数据结构、优化循环结构、利用内置函数、使用生成器表达式以及并行化处理。通过这些技巧,你可以更高效地编写Python代码,提升程序的性能和响应速度。
|
10天前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。
|
12天前
|
存储 算法 搜索推荐
如何提升Python代码的性能:优化技巧与实践
本文将介绍如何通过优化技巧和实践方法来提升Python代码的性能。从避免不必要的循环和函数调用,到利用内置函数和库,再到使用适当的数据结构和算法,我们将深入探讨各种提升Python代码性能的方法,帮助开发者写出更高效的程序。
|
16天前
|
SQL 缓存 数据库
在Python Web开发过程中:数据库与缓存,如何使用ORM(例如Django ORM)执行查询并优化查询性能?
在Python Web开发中,使用ORM如Django ORM能简化数据库操作。为了优化查询性能,可以:选择合适索引,避免N+1查询(利用`select_related`和`prefetch_related`),批量读取数据(`iterator()`),使用缓存,分页查询,适时使用原生SQL,优化数据库配置,定期优化数据库并监控性能。这些策略能提升响应速度和用户体验。
18 0