Mojo — 适用于所有人工智能开发人员的编程语言

Mojo语言是一个由人工智能公司Modular推出的全新编程语言,专为AI开发者设计。Mojo的语法与Python相似,但结合了Python的易用性和C语言的高性能,旨在解锁AI硬件的可编程性和AI模型的可扩展性。

Modular这个公司则是一个非常年轻的新生AI创业公司,于2022年由Chris Lattner和Tim Davis所创立。提到这两个创始人,相信有些同学也有所了解,都是业内顶级专家。其中Chris Lattner还被称为“LLVM之父”和“Swift之父”,在苹果、谷歌、特斯拉等多家知名科技巨头里曾带领构建了AI和核心系统。

Mojo的几个显著特点包括:

  1. 高性能:Mojo充分利用了硬件的特性和功能,包括多核、矢量单元和加速器单元。通过先进的编译器和异构运行时机制,Mojo能够在不增加复杂性的前提下实现与C++和CUDA相当的性能。Mojo利用MLIR,使得开发者能够充分利用向量、线程和AI硬件单元,实现高效的并行化。

  2. 互操作性:Mojo可以访问整个Python生态,这意味着开发者可以在Mojo代码中无缝地接入和混合使用Python的库和工具,如Numpy和Matplotlib等。这种互操作性为Mojo提供了丰富的资源和便利的开发环境。

  3. 可扩展性:Mojo支持用户模型中的操作升级,使得开发者可以轻松地扩展用户的模型,包括预处理、后处理、自定义替换等操作。这种可扩展性为AI模型的优化和定制提供了极大的灵活性。

Mojo的推出受到了业界的广泛关注。自今年5月初发布以来,Mojo已经形成了基本规模和生态。Modular公司宣布Mojo正式开放下载,首先从Linux系统开始,并计划在未来版本中支持Mac和Windows系统。这意味着开发者可以通过Mojo SDK进行尝试并编写自己的Mojo代码。

Mojo的表现也令人瞩目。有开源作者将GitHub上热门的llama2.c项目移植到Mojo(llama2.mojo),结果性能提升了近250倍。这一成绩展示了Mojo在AI开发领域的潜力和优势。

尽管Mojo的出现引起了关于Python地位的讨论,但Modular公司CEO Chris Lattner表示,Mojo并不是要取代Python,而是要帮助Python开发者变得更强大。Mojo的目标是与Python等主流编程语言共存,为AI开发者提供更多选择和更好的工具。

总的来说,Mojo是一个专为AI开发者设计的新编程语言,具有高性能、互操作性和可扩展性等特点。它的推出为AI开发领域带来了新的选择和机会,值得关注和尝试。

  • Mojo地址:www.modular.com/mojo
  • Mojo文档:docs.modular.com/mojo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/365368.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

观成科技:证券行业加密业务安全风险监测与防御技术研究

摘要:解决证券⾏业加密流量威胁问题、加密流量中的应⽤⻛险问题,对若⼲证券⾏业的实际流量内容进⾏调研分析, 分析了证券⾏业加密流量⾯临的合规性⻛险和加密协议及证书本⾝存在的⻛险、以及可能存在的外部加密流量威 胁,并提出防…

第三方服务提供商的五大风险

亚马逊如何应对网络安全挑战 关键网络安全统计数据和趋势 移动优先世界中安全和隐私策略 当今数字时代网络安全的重要性 用户无法停止犯安全错误的 3 个原因 首席安全官可能过于依赖 EDR/XDR 防御 随着业务流程变得越来越复杂,公司开始转向第三方来提高其提供关…

观察者模式在金融业务中的应用及其框架实现

引言 观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象同时监听某一个主题对象。当这个主题对象发生变化时,会通知所有观察者对象,使它们能够自动更新。…

Web后端开发之前后端交互

http协议 http ● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议 是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。 HTTP是一个基于TCP/IP通信协议来传递数据. HTT…

Transformer详解encoder

目录 1. Input Embedding 2. Positional Encoding 3. Multi-Head Attention 4. Add & Norm 5. Feedforward Add & Norm 6.代码展示 (1)layer_norm (2)encoder_layer1 最近刚好梳理了下transformer,今…

文件系统(操作系统实验)

实验内容 (1)在内存中开辟一个虚拟磁盘空间作为文件存储器, 在其上实现一个简单单用户文件系统。 在退出这个文件系统时,应将改虚拟文件系统保存到磁盘上, 以便下次可以将其恢复到内存的虚拟空间中。 (2&…

MySQL-java连接MySQL数据库+JDBC的使用

目录 1.准备所需要资源 2.导入驱动包 3.连接数据库步骤 首先在MySQL中创建好数据库和表 代码实现连接数据库 1.准备所需要资源 1.mysql和驱动包 我用的是5.7的mysql和5.1.49的驱动包,链接放在网盘里,需要的自取 链接:https://pan.bai…

二轴机器人装箱机:重塑物流效率,精准灵活,引领未来装箱新潮流

在现代化物流领域,高效、精准与灵活性无疑是各大企业追求的核心目标。而在这个日益追求自动化的时代,二轴机器人装箱机凭借其较佳的性能和出色的表现,正逐渐成为装箱作业的得力助手,引领着未来装箱新潮流。 一、高效:重…

【自动化测试】Selenium自动化测试框架 | 相关介绍 | Selenium + Java环境搭建 | 常用API的使用

文章目录 自动化测试一、selenium1.相关介绍1.Selenium IDE2.Webdriverwebdriver的工作原理: 3.selenium Grid 2.Selenium Java环境搭建3.常用API的使用1.定位元素2.操作测试对象3.添加等待4.打印信息5.浏览器的操作6.键盘事件7.鼠标事件8.定位一组元素9.多层框架定…

springcloud-config 客户端启用服务发现client的情况下使用metadata中的username和password

为了让spring admin 能正确获取到 spring config的actuator的信息,在eureka的metadata中添加了metadata.user.user metadata.user.password eureka.instance.metadata-map.user.name${spring.security.user.name} eureka.instance.metadata-map.user.password${spr…

HTTP协议和Nginx

一、HTTP协议和Nginx 1.套接字Socket 套接字Socket是进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换,SocketAPI出现于1983年BSD4.2实现在建立通信连接的每一端,进程间的传输…

【单元测试】Controller、Service、Repository 层的单元测试

Controller、Service、Repository 层的单元测试 1.Controller 层的单元测试1.1 创建一个用于测试的控制器1.2 编写测试 2.Service 层的单元测试2.1 创建一个实体类2.2 创建服务类2.3 编写测试 3.Repository 1.Controller 层的单元测试 下面通过实例演示如何在控制器中使用 Moc…

Uniapp 默认demo安装到手机里启动只能看得到底tab无法看到加载内容解决方案

Uniapp 默认demo安装到手机里以后,启动APP只能看到底tab栏,无法看到每个tab页对应的内容,HBuilder会有一些这样的报错信息: Waiting to navigate to: /pages/tabBar/API/API, do not operate continuously: 解决方案:…

OpenCV 调用自定义训练的 YOLO-V8 Onnx 模型

一、YOLO-V8 转 Onnx 在本专栏的前面几篇文章中,我们使用 ultralytics 公司开源发布的 YOLO-V8 模型,分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务,实验后发现效果都非常的不错,但是前面的演示都是基于 ultralytics…

SpringBoot + mkcert ,解决本地及局域网(内网)HTTPS访问

本文主要解决访问SpringBoot开发的Web程序,本地及内网系统,需要HTTPS证书的问题。 我测试的版本是,其他版本不确定是否也正常,测试过没问题的小伙伴,可以在评论区将测试过的版本号留下,方便他人参考: <spring-boot.version>2.3.12.RELEASE</spring-boot.vers…

快速将网页封装成APP:小猪APP分发助您一臂之力

你是否曾经有一个绝妙的网页&#xff0c;但苦于无法将其变成手机APP&#xff1f;其实&#xff0c;你并不孤单。越来越多的企业和开发者希望将自己的网站封装成APP&#xff0c;以便更好地接触到移动端用户。我们就来聊聊如何快速将网页封装成APP&#xff0c;并探讨小猪APP分发在…

「C++系列」C++ 数据类型

文章目录 一、C 数据类型二、C 数据类型占位与范围三、类型转换1. 隐式类型转换&#xff08;Automatic Type Conversion&#xff09;2. 显式类型转换&#xff08;Explicit Type Conversion&#xff09;3. 示例代码 四、数据类型案例1. 整型2. 浮点型3. 字符型4. 布尔型5. 枚举类…

《Programming from the Ground Up》阅读笔记:p1-p18

《Programming from the Ground Up》学习第1天&#xff0c;p1-18总结&#xff0c;总计18页。 一、技术总结 1.fetch-execute cycle p9, The CPU reads in instructions from memory one at a time and executes them. This is known as the fetch-execute cycle。 2.genera…

九浅一深Jemalloc5.3.0 -- ①浅*编译调试

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但5.3.0却少之又少。而且5.3.0的架构与之前的版本也有较大不同&#xff0c;本着“与时俱进”、“由浅入深”的宗旨&#xff0c;我将逐步分析Jemalloc5.3.0的实现。5.3.0的特性请见Releases jemalloc/jemalloc GitHub 另…

fastapi+vue3前后端分离开发第一个案例整理

开发思路 1、使用fastapi开发第一个后端接口 2、使用fastapi解决cors跨域的问题。cors跨域是浏览器的问题&#xff0c;只要使用浏览器&#xff0c;不同IP或者不同端口之间通信&#xff0c;就会存在这个问题。前后端分离是两个服务&#xff0c;端口不一样&#xff0c;所以必须要…