目錄
如何使用
首頁 科技週邊 人工智慧 首個GPU高階語言,大規模並行就像寫Python,已獲8500 Star

首個GPU高階語言,大規模並行就像寫Python,已獲8500 Star

Jun 07, 2024 pm 12:03 PM
模型 訓練

经过近10年的不懈努力,对计算机科学核心的深入研究,人们终于实现了一个梦想:在GPU上运行高级语言。

上周末,一种名为 Bend 的编程语言在开源社区引发了热烈的讨论,GitHub 的 Star 量已经超过了 8500。

首个GPU高级语言,大规模并行就像写Python,已获8500 Star

GitHub:https://github.com/HigherOrderCO/Bend

作为一种大规模并行的高级编程语言,它仍处于研究阶段,但提出的思路已经让人们感到非常惊讶。使用 Bend,你可以为多核 CPU/GPU 编写并行代码,而无需成为具有10年经验的 C/CUDA 专家,感觉就像 Python 一样!

首个GPU高级语言,大规模并行就像写Python,已获8500 Star

是的,Bend 采用了 Python 语法。

Bend是一种支持Python、Haskell等表达性语言的编程范式,它不同于CUDA、Metal等低级替代方案。Bend具备快速对象分配、完全闭包支持的高阶函数、无限制的递归、以及基于核心数量的近线性加速。Bend在大规模并行硬件上运行,并提供基于HVM2的运行时支持。

该项目的主要贡献者 Victor Taelin 来自巴西,他在 X 平台上分享了 Bend 的主要特性和开发思路。

首先,Bend 不适用于现代机器学习算法,因为这些算法是高度正则化的(矩阵乘法)且具有预先分配的内存,并且通常已经编写了好的 CUDA 内核。

Bend 的巨大优势体现在实际应用中,这是因为「真正的应用程序」通常没有预算来制作专用的 GPU 内核。试问,谁在 CUDA 中制作了网站?而且,即使有人这样做了,也是不可行的,因为:

1. 真正的应用程序需要从许多不同的库导入函数,无法为它们编写 CUDA 内核;

2. 真实的应用程序具有动态函数和闭包;

3. 真实的应用程序会动态且不可预测地分配大量内存。

Bend 完成了一些新的尝试,并且在某些情况下可以相当快,但现在想写大语言模型肯定是不行的。

作者对比了一下旧方法和新的方法,使用相同的算法树中的双调排序,涉及 JSON 分配和操作。Node.js 的速度是 3.5 秒(Apple M3 Max),Bend 的速度是 0.5 秒(NVIDIA RTX 4090)。

是的,目前 Bend 需要整块 GPU 才能在一个核心上击败 Node.js。但另一方面,这还是一个初生的新方法与大公司(Google)优化了 16 年的 JIT 编译器在进行比较。未来还有很多可能性。

如何使用

在 GitHub 上,作者简要介绍了 Bend 的使用流程。

首先,安装 Rust。如果你想使用 C 运行时,请安装 C 编译器(例如 GCC 或 Clang);如果要使用 CUDA 运行时,请安装 CUDA 工具包(CUDA 和 nvcc)版本 12.x。Bend 目前仅支持 Nvidia GPU。

然后,安装 HVM2 和 Bend:

cargo +nightly install hvmcargo +nightly install bend-lang

最后,编写一些 Bend 文件,并使用以下命令之一运行它:

bend run<file.bend> # uses the Rust interpreter (sequential)bend run-c<file.bend> # uses the C interpreter (parallel)bend run-cu <file.bend> # uses the CUDA interpreter (massively parallel)

你还可以使用 gen-c 和 gen-cu 将 Bend 编译为独立的 C/CUDA 文件,以获得最佳性能。但 gen-c、gen-cu 仍处于起步阶段,远没有像 GCC 和 GHC 这样的 SOTA 编译器那么成熟。

Bend 中的并行编程

这里举例说明可以在 Bend 中并行运行的程序。例如,表达式:

(((1 + 2) + 3) + 4)

不能并行运行,因为 + 4 取决于 + 3,而 + 3 又取决于 (1+2)。而表达式:

((1 + 2) + (3 + 4))

可以并行运行,因为 (1+2) 和 (3+4) 是独立的。Bend 并行运行的条件就是符合并行逻辑。

再来看一个更完整的代码示例:

# Sorting Network = just rotate trees!def sort (d, s, tree):switch d:case 0:return treecase _:(x,y) = treelft = sort (d-1, 0, x)rgt = sort (d-1, 1, y)return rots (d, s, lft, rgt)# Rotates sub-trees (Blue/Green Box)def rots (d, s, tree):switch d:case 0:return treecase _:(x,y) = treereturn down (d, s, warp (d-1, s, x, y))(...)

该文件实现了具有不可变树旋转的双调排序器。它不是很多人期望的在 GPU 上快速运行的算法。然而,由于它使用本质上并行的分治方法,因此 Bend 会以多线程方式运行它。一些速度基准:

  •  CPU,Apple M3 Max,1 个线程:12.15 秒
  •  CPU,Apple M3 Max,16 线程:0.96 秒
  •  GPU,NVIDIA RTX 4090,16k 线程:0.21 秒

不执行任何操作即可实现 57 倍的加速。没有线程产生,没有锁、互斥锁的显式管理。我们只是要求 Bend 在 RTX 上运行我们的程序,就这么简单。

Bend 不限于特定范例,例如张量或矩阵。任何的并发系统,从着色器到类 Erlang 的 actor 模型都可以在 Bend 上进行模拟。例如,要实时渲染图像,我们可以简单地在每个帧上分配一个不可变的树:

# given a shader, returns a square imagedef render (depth, shader):bend d = 0, i = 0:when d < depth:color = (fork (d+1, i*2+0), fork (d+1, i*2+1))else:width = depth / 2color = shader (i % width, i /width)return color# given a position, returns a color# for this demo, it just busy loopsdef demo_shader (x, y):bend i = 0:when i < 5000:color = fork (i + 1)else:color = 0x000001return color# renders a 256x256 image using demo_shaderdef main:return render (16, demo_shader)

它确实会起作用,即使涉及的算法在 Bend 上也能很好地并行。长距离通信通过全局 beta 缩减(根据交互演算)执行,并通过 HVM2 的原子链接器正确有效地同步。

最后,作者表示 Bend 现在仅仅是第一个版本,还没有在合适的编译器上投入太多精力。大家可以预期未来每个版本的原始性能都会大幅提高。而现在,我们已经可以使用解释器,从 Python 高级语言的角度一睹大规模并行编程的样子了。


以上是首個GPU高階語言,大規模並行就像寫Python,已獲8500 Star的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1580
276
AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 Apr 09, 2024 am 11:52 AM

AI,的確正在改變數學。最近,一直十分關注這個議題的陶哲軒,轉發了最近一期的《美國數學學會通報》(BulletinoftheAmericanMathematicalSociety)。圍繞著「機器會改變數學嗎?」這個話題,許多數學家發表了自己的觀點,全程火花四射,內容硬核,精彩紛呈。作者陣容強大,包括菲爾茲獎得主AkshayVenkatesh、華裔數學家鄭樂雋、紐大電腦科學家ErnestDavis等多位業界知名學者。 AI的世界已經發生了天翻地覆的變化,要知道,其中許多文章是在一年前提交的,而在這一

你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 Apr 18, 2024 pm 07:58 PM

波士頓動力Atlas,正式進入電動機器人時代!昨天,液壓Atlas剛「含淚」退出歷史舞台,今天波士頓動力就宣布:電動Atlas上崗。看來,在商用人形機器人領域,波士頓動力是下定決心要跟特斯拉硬剛一把了。新影片放出後,短短十幾小時內,就已經有一百多萬觀看。舊人離去,新角色登場,這是歷史的必然。毫無疑問,今年是人形機器人的爆發年。網友銳評:機器人的進步,讓今年看起來像人類的開幕式動作、自由度遠超人類,但這真不是恐怖片?影片一開始,Atlas平靜地躺在地上,看起來應該是仰面朝天。接下來,讓人驚掉下巴

全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 May 07, 2024 pm 04:13 PM

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

特斯拉機器人進廠打工,馬斯克:手的自由度今年將達到22個! 特斯拉機器人進廠打工,馬斯克:手的自由度今年將達到22個! May 06, 2024 pm 04:13 PM

特斯拉機器人Optimus最新影片出爐,已經可以在工廠裡打工了。正常速度下,它分揀電池(特斯拉的4680電池)是這樣的:官方還放出了20倍速下的樣子——在小小的「工位」上,揀啊揀啊揀:這次放出的影片亮點之一在於Optimus在廠子裡完成這項工作,是完全自主的,全程沒有人為的干預。而且在Optimus的視角之下,它還可以把放歪了的電池重新撿起來放置,主打一個自動糾錯:對於Optimus的手,英偉達科學家JimFan給出了高度的評價:Optimus的手是全球五指機器人裡最靈巧的之一。它的手不僅有觸覺

替代MLP的KAN,被開源專案擴展到卷積了 替代MLP的KAN,被開源專案擴展到卷積了 Jun 01, 2024 pm 10:03 PM

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

本地運作效能超越 OpenAI Text-Embedding-Ada-002 的 Embedding 服務,太方便了! 本地運作效能超越 OpenAI Text-Embedding-Ada-002 的 Embedding 服務,太方便了! Apr 15, 2024 am 09:01 AM

Ollama是一款超實用的工具,讓你能夠在本地輕鬆運行Llama2、Mistral、Gemma等開源模型。本文我將介紹如何使用Ollama實現對文本的向量化處理。如果你本地還沒有安裝Ollama,可以閱讀這篇文章。本文我們將使用nomic-embed-text[2]模型。它是一種文字編碼器,在短的上下文和長的上下文任務上,效能超越了OpenAItext-embedding-ada-002和text-embedding-3-small。啟動nomic-embed-text服務當你已經成功安裝好o

美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 美國空軍高調展示首個AI戰鬥機!部長親自試駕全程未乾預,10萬行代碼試飛21次 May 07, 2024 pm 05:00 PM

最近,軍事圈被這個消息刷屏了:美軍的戰鬥機,已經能由AI完成全自動空戰了。是的,就在最近,美軍的AI戰鬥機首次公開,揭開了神秘面紗。這架戰鬥機的全名是可變穩定性飛行模擬器測試飛機(VISTA),由美空軍部長親自搭乘,模擬了一對一的空戰。 5月2日,美國空軍部長FrankKendall在Edwards空軍基地駕駛X-62AVISTA升空注意,在一小時的飛行中,所有飛行動作都由AI自主完成! Kendall表示——在過去的幾十年中,我們一直在思考自主空對空作戰的無限潛力,但它始終顯得遙不可及。然而如今,

FisheyeDetNet:首個以魚眼相機為基礎的目標偵測演算法 FisheyeDetNet:首個以魚眼相機為基礎的目標偵測演算法 Apr 26, 2024 am 11:37 AM

目標偵測在自動駕駛系統當中是一個比較成熟的問題,其中行人偵測是最早得以部署演算法之一。在多數論文當中已經進行了非常全面的研究。然而,利用魚眼相機進行環視的距離感知相對來說研究較少。由於徑向畸變大,標準的邊界框表示在魚眼相機當中很難實施。為了緩解上述描述,我們探索了擴展邊界框、橢圓、通用多邊形設計為極座標/角度表示,並定義一個實例分割mIOU度量來分析這些表示。所提出的具有多邊形形狀的模型fisheyeDetNet優於其他模型,並同時在用於自動駕駛的Valeo魚眼相機資料集上實現了49.5%的mAP

See all articles