Python 官方文档:入门教程 => 点击学习
文章目录 为什么叫 Mojo ?Python 家族的一员,MojoPython 的好处:Python 兼容性Python 的问题移动和服务器部署:Python 子集和其他类似 Python
Mojo 的意思是“神奇的魅力”或“神奇的力量”。这个名字很适合为 Python 带来神奇力量的语言,包括用于加速器和 AI 中无处不在的其他异构系统的创新编程模型。
Mojo 是一种新的编程语言,旨在与 Python 生态系统完全兼容。
Python 是 ML 和无数其他领域的主导力量。
Python 易于学习,被重要的程序员群体所熟知,拥有令人惊叹的社区,拥有大量有价值的软件包,并且拥有各种各样的好工具。
Python 通过其动态编程特性支持开发美观且富有表现力的 api。
Tensorflow 和 PyTorch 等机器学习框架采用 Python 作为其用 c++ 实现的高性能运行时的前端。
对于 Modular,Python 是其 API 表面堆栈中不可或缺的部分。
模块化团队希望 Python 生态系统中的人们看到他们的 Mojo 目标是将 Python 提升到一个新的水平——完成它——而不是与之竞争。
Mojo 旨在与 Python 生态系统完全兼容。兼容性有两种类型:导入兼容性和迁移兼容性。
Mojo 与 Python 100% 导入兼容,因为它使用 CPython 实现互操作性。但 Mojo 尚未完全与 Python 兼容。
就 Python 和 Mojo 而言,Mojo 期望直接与 CPython 运行时合作,并具有与 CPython 类和对象集成的类似支持,而无需自行编译代码。
这提供了与现有代码的庞大生态系统的插件兼容性,并且它支持渐进式迁移方法,在该方法中,向 Mojo 的增量迁移会产生增量收益。
Python 有一些众所周知的问题,包括糟糕的底层性能和全局解释器锁 (GIL),这使得 Python 成为单线程的。这些问题在通常需要高性能和多线程能力的 AI 领域影响尤其大。
解决这些问题的一种方法是使用混合库,它们是使用 Python 和 C/C++ 的组合构建的。但是,构建混合库很复杂,需要 Python 和 C/C++ 的知识。这会使大型框架的发展变得困难,并可能导致可用性问题。
此外,必须同时处理 Python 和 C/C++ 代码的两个世界问题可能会导致难以使用调试器和其他工具。这对于 AI 开发人员来说尤其成问题,他们经常需要使用像 CUDA(计算统一设备架构)这样的加速器。
CUDA(计算统一设备架构)是一种定制的编程语言,有其自身的特殊问题和局限性。
AI 世界在硬件方面有大量的创新,因此,复杂性正在失控。现在有几种尝试为加速器(OpenCL、Sycl、OneAPI 等)构建有限的编程系统。
然而,这些系统都没有解决工具和生态系统中严重损害行业的基本碎片化问题。
Mojo 旨在通过提供一种可用于系统编程和 AI 开发的统一语言来解决这些问题。
Mojo 仍在开发中,但它有可能彻底改变人工智能行业。
Python 生态系统的另一个挑战是部署。这有很多方面,包括如何控制依赖关系、如何部署密封编译的“a.out”文件以及如何提高多线程和性能。
已经有很多构建可部署 Python 的尝试,例如 PyTorch 项目中的 TorchScript。
这些语言很有用,因为它们通常提供低依赖性部署解决方案,有时还具有高性能。它们使用类似 Python 的语法,这使得它们比一门新语言更容易学习。
但是,这些语言并未得到广泛采用,因为它们:
这些方法的挑战在于它们试图解决 Python 的一个弱点,但它们在 Python 的强项上并不擅长。
充其量,它们可以提供 C 和 C++ 的新替代方案,但如果不解决 Python 的动态用例,它们就无法解决“两个世界问题”。
这种方法导致碎片化,不兼容性使迁移变得困难甚至不可能。
来源地址:https://blog.csdn.net/m0_73728511/article/details/132796485
--结束END--
本文标题: 试图替代 Python 的下一代AI编程语言:Mojo
本文链接: https://lsjlt.com/news/408970.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0