面向 AI 和 GPU 的语言 Zeta

一个老问题,为什么需要一门新的语言,为什么需要一门新的程序设计语言?
这是一个老问题。我可以列出很多理由。简单来说传统的程序设计员。都是诞生 AI 真正兴起之前的所以他们基本上只能满足两个目标。第一个是人类。容易读,第二个是计算机容易理解和执行。但是在 AI 的时代,AI 已经成为我们所有生产力的中的重要和必不可少的环节。这样一个条件下就加入了一个新的因素,就是这门语言。一定要让 AI 也更容易输入和输出。
我们看一下传统的语言。那么系统编程的角度太古老的我们就不考虑。系统编程的角度有 rust。有 go 当然还有 c 和 c++。 传统的脚本,用的最多的是 Python。当然各个领域还有用这个 LUA 的。前端用的最多的是什么?JavaScript?TS, JS 也是 AI。可能是看的最多,最能理解的语言。
AI 兴起之后,也出现了一些新的语言。比如说基于 Python。基础之上的 mojo。也有可以认为是某种 rust 变体的 moonbit。呃,但是他们更多的是沿用这两者的老路,没有一个新的思路新的方向吧。所以我想要一个什么样的语言?我想要一个样子看起来很简单。然后又吸收了 rust 的这种语法清晰的特点。机器容易理解,人也容易理解。采用动态类型。这样的话呢可以在不引入复杂类型系统的前提下,具有非常强大的描述能力和灵活性。
当然这些都是冠冕堂皇的,还有一个其实更加强大的理由。呃,我想有这样一门至少他能够满足两个放在我眼前的目标。
第一个他们当脚本用。能够编译成极度高效的字节码,非常快速的解释执行。这个可以用在游戏的开发中。描述 NPC 的逻辑,描述人类的 AI。包括它的这种灵活性以及 ai 的可逆性可以让 AI 快速的去生成智能决策的种种行为。
大家都知道所谓的大语言模型,从成本和反应速度上来讲。它是不太容易直接和玩家进行交互的。这个成本和响应时间都是难以接受的。所以就需要有一个中间环节。呃,比如说我们用 ai 来生成大量的快速的文本或者脚本,然后用这些脚本来快速的跟用户交互。这是第一个目标。
第二个目标是什么?就是我想有一个能够在显卡上运行。非常接近这个目标的是最近一些比较新的尝试,像那个 wgsl 就是基于 web gpu 的那个 shadow language。嗯,他也是用描述性的。有点像高级语言一样。但是非常像
那与其这样我为什么不用 Rust 呢?第二个他的这种就是它的那个运行过程过程是割裂的。就是你你没有一个调试的环境,你很难让它正确的运行。
所以呢我想有一个语言。他能够比如说我写了一段脚本。它能够以脚本的形态快速的验证正确性
然后呢?同样这段代码可以编译到 GPU 上。快速的或者极度快速的运行。
这是我的根本目标。那我们说一个更短一些,
就是我这个这一趟。这一个课程吧,或者就这 1 个月的目标我要完成两个。
Gpu 上的小程序这个脚本。第一个能够在 GPS 上绘制漂亮的 madlebrot 集合。应该知道这个分型的图形,是非常漂亮的,但是它的对计算量的要求是极度巨大。特别适合 gpu 来完成。
这第一个。第二个呢?是实现 gpu 上的。高度并行的从快速排序到下一步,bwt 的这个算术变化。
再往下。然后做 LZ 的压缩。那么能够实现一个极高并行的高压缩率的 gpu 上的压缩的方法。
嗯,我们知道 nvida 有自己的库,但是有没有可能在手机上?或者在甚至在嵌入有有自己的那个小的显卡的这种设备上也能跑的算法方案吗?这就是一个这就是我眼见的目的。
那我们总结一下。
动态类型 类型一定明确的但是可以在运行时候后确定。
类似于 Rust 的语法。简化就是特别是简化类型系统
脚本的形式快速执行。验证语言的正确性,程序的正确性。
可以编译到显卡上。极高并行的快速运行。
但以后有可能因为有一个中间假设我们有个中间表示之后,我们也可以很快的。把这个语言编译成呃 X86 的代码,比如说用那个 LLVM 的后端或者是 Cranfit 的后端
评论