多項核心技術進展發布!胡淵鳴創業後首現身,講述「太極圖形」的前世今生

blank

多項核心技術進展發布!胡淵鳴創業後首現身,講述「太極圖形」的前世今生

blank

作者| 陳大鑫

最近一年,計算機圖形學正在迎來產業新浪潮,各路計算機圖形學大神紛紛創業成立新的公司。

然而這裡面最引人矚目的還得屬今年年初,出身清華姚班、MIT博士畢業的胡淵鳴團隊創建的太極圖形。

blank

身為一家初創企業,想要一直保持競爭力,就必須要不斷的成長。

那麼這半年多來,太極編程語言又都取得了哪些最新進展呢?

金色九月(9月4日),為了讓開發者更加真實更加近距離的來了解太極,太極圖形於北京中關村創業大街舉辦了一場面向開發者的技術交流盛會。

太極圖形的聯合創始人和核心開發人員們親臨現場,同步Taichi 編程語言的最新進展,並與所有參會的開發者們面對面交流,會前參會者踴躍報名,會中參會者積極提問,更是有近千位同學在線上觀看了當天的直播。毫無疑問,這是一場Taichi 開發者知識與思辨的盛宴。

blank

太極簡史

大會伊始,聯合創始人兼CEO 胡淵鳴為大家回顧了一遍太極圖形精彩的前世今生。

blank

2016年春天,胡淵鳴第一次萌生了打造“可重用圖形基礎設施”的想法。考慮到優秀的圖形基礎設施將會創造無數個虛擬世界,胡淵鳴決定將項目命名為“太極”:“太極”在台灣傳統哲學中意指“宇宙最原始的狀態”,並且其英文“Taichi”已經廣泛被非漢語母語者接受,為未來的國際化發展奠定基礎。

轉眼5年已經過去,Taichi 已經由一套C++庫變成了完整的編程語言和編譯器、胡淵鳴也從清華姚班的一個大二本科生成長為了一個創業公司的CEO。

下圖的時間軸詳細地展示了太極從項目奠基到公司成立壯大的發展歷程。

blank

2D“冰雪奇緣”-3D“冰雪奇緣”

許多人通過知乎上《99行代碼的冰雪奇緣》知道了Taichi,只需要99行代碼就可以寫一個簡單的連續介質模擬器,模擬三種相互作用的不同材料(水,果凍,雪),效果逼真。時隔一年又半載,太極軟件工程師展示了最新的3D版“冰雪奇緣”,即Taichi 基於GPU 的高性能GUI 解決方案。 GGUI可以直接獲取位於GPU 上的太極物理仿真數據進行交互,並直接在GPU上進行渲染,實現了渲染性能的大幅提升。

blank
Taichi Zoo上演示的2D“冰雪奇緣”—Yuanming Hu
blank
實時3D MPM仿真—Dunfan Lu
blank

被廣泛認可的太極

太極的願景是希望打造一個世界級的開源圖形基礎設施和雲平台,讓圖形計算惠及每一人,使命是解放創造力。太極的團隊來自麻省理工學院,哈佛大學、微軟、谷歌、Facebook等頂尖的學府和企業,有超過半數的同學本科來自清北,2/3的同學擁有海外經歷。開源是刻在太極基因裡面非常重要的一點,太極是全球最大的開源平台Github 上面最受關注的圖形計算基礎設施項目之一,也是一個由台灣人主導的GPU編程系統,擁有世界範圍內的影響力。

從外界認可方面來看,太極獲得了紅杉資本數百萬美元的天使輪投資和台灣計算機學會2020年度最佳圖形開源軟件獎。

商業方面,太極和快手進行了合作,使得太極的基礎設施能夠切切實實的讓每一個手機上面有GPU 的同學可以去體驗到太極的美妙,可以享受到實時物理仿真,給他們生活帶來樂趣。

有近百萬用戶快手用戶拍攝並上傳基於太極開發的魔法表情特效,其特效被2000多萬快手用戶觀看到。

在此發展過程中太極也收穫到了來自學術界和產業界眾多積極良好的反饋。

如快手Y-tech 圖形AI 團隊負責人馬重陽表示:

太極編程語言和傳統的GPU編程方式比起來極其容易學習,即使是實習生也能在1小時內基本掌握。並且,太極程序一次開發後,可在iOS、Android、PC等多平台運行...滿足了快手魔法表情快速迭代的需求,對繁重的設備部署工作起到了很好的加速作用。

谷歌的資深研究科學家Alexander 表示:

我經常抱怨類似Numpy 的框架(如Tensorflow、JAX、PyTorch)在新型計算任務下不夠高效,今天我benchmark了Physarum這個任務;Tensorflow 耗時11.9 秒,但是Taichi 只要240毫秒,Taichi 快了40~50倍,並且代碼更加可讀。

台灣計算機學會CG&CAD 專委會表示:

Taichi(太極)為整個仿真行業注入了新的力量,對於領域和學科的發展有很好推動作用。太極也擁有非常強的國際影響力,其內核算法和衍生應用頻繁在最近的圖形學和機器學習會議上出現... 代碼規範,文檔充足,並且維護人數正在變多,經評委會嚴格評審及討論,一致認為Taichi 開源軟件獲得2020年度“圖形開源軟件獎”。

麻省理工學院的博士生Jie Xu表示:

當我們在參加MIT 斯隆商學院的金融工程課時,需要求解一個高維動態規劃以來為金融產品定價時。編寫C++ 甚至CUDA的巨大工作量讓我們望而卻步。好在太極提供了一個極其方便的GPU 並行編程方案,使得我們的代碼不但比C++快了兩個數量級,而且更加容易編寫、維護。


開發者實例分享

活動當天,美國、台灣香港、杭州的三位太極用戶在線上進行了實例分享:

卡門渦街-Zhuo Wang

這三位來自計算流體力學、工業機器人和圖形學的工程師分別展示了太極在各自研究領域內的應用,笑談道“以前用C++實現很勸退的,現在用太極容易很多”。除了易用性的增強,太極朝並行編程語言發展的潛力也逐漸在更多領域凸顯。

Taichi編程語言的格局正在從“Graphics Programming for Everyone” 向“Parallel Programming for Everyone”逐漸展開實例1: 用Taichi編寫不可壓縮流體模擬器(基於FVM和SIMPLE格式) from 包乾
blank

不可壓縮流體是流體仿真中最基本的一種計算類型,也是很多更為複雜流體的計算的基礎。作者採用不可壓縮流體仿真中普遍被採用的有限體積法(FVM)和SIMPLE算法,實現了用Taichi語言在二維管道內的非定常流體模擬,並通過添加障礙物的形式觀測到了卡門渦街的產生和發展。通過本項目,作者展示了Taichi語言在流體計算方面的易用和高效特性,並探索了工程流體仿真和計算機圖形學流體仿真的區別與聯繫。

實例2: Taichi在SLAM上的牛刀小試徐浩

blank

SLAM全稱為Simultaneous localization and mapping,即實時定位與地圖構建,對移動機器人/無人機/自動駕駛/eVTOL等至關重要。使用Taichi進行mapping的SLAM後端,能夠快速遍歷特定層次、實現“免費”的並行加速,並可專注於算法實現。

實例3: 如何用Taichi實現一個雙向光線追踪積分器林耀冬

blank

雙向路徑追踪方法相比傳統單向方法,能更好模擬各種光學現象,但由於算法流程複雜,很少有並行實現的開源代碼。本項目利用了太極上手簡單,自動並行的特性,使用500行左右代碼,實現了雙向路徑追踪的並行版本,大大節省了搭建該算法原型的時間。


超強技術實戰

本次大會設置了互動性極強的技術實戰環節—用太極實現N-body仿真,並講解了Taichi編程語言的基本語法。從為電腦裝載太極程序開始,太極圖形編譯器架構師張愛玲手把手帶觀眾編寫自己的第一個太極程序—彈簧-質點仿真遊戲。

幾十位觀眾抱著電腦當場開碼,全神貫注宛如考試現場。太極圖形的軟件工程師們遍布各個角落給大家答疑,當場有十多名同學成功完成實戰,最快的一位同學僅用時40分鐘。

blank


Taichi Zoo

太極圖形開發者大會上,太極圖形聯合創始人兼CTO匡冶正式發布了在線實時創作分享平台Taichi Zoo(beta)。

blank

許多同學在電腦前自行體驗了一番,在Taichi Zoo中只需簡短地編寫代碼、調整參數,點擊編譯,就可以立馬看到自己調試的動態效果,還可以將自己的作品一鍵分享給同伴。

“嚐鮮地址”


最新技術進展

本次大會現場有6位太極圖形的軟件工程師進行了技術進展分享,展現了太極在易用性的提升:包括動態field的添加刪除、緊密排布的內存優化、集成測試上的完善等等。

1、GGUI: Taichi基於GPU的高性能GUI解決方案from 盧敦凡

blank

本演講介紹了GGUI:太極基於GPU的高性能GUI解決方案。 GGUI可以直接獲取位於GPU上的太極物理仿真數據進行交互,並直接在GPU上進行渲染,這使得GGUI可以高效地渲染。

2、Packed Mode: 有效降低Non-power-of-two Fields 的內存佔用from 徐毅

blank

本演講主要介紹了Taichi新特性Packed Mode的設計。在Packed Mode下,Taichi不會自動將Field每一維的大小對齊到二的次冪,因此能有效降低本身大小不是二的次冪的Field的內存佔用。本次演講詳細分析了二的次冪在Taichi Field實現過程中的使用(包括內存排布、坐標映射、Struct For到Range For的轉化等),並講解瞭如何不利用二的次冪進行等價的實現。

3、Dynamic Indexing: 運行時自由訪問向量與矩陣元素from 方燠

blank

張量計算被廣泛運用在物理仿真,真實感渲染和模型處理等多個領域。 Taichi編程語言針對張量必須使用常數下標的這一限定,在優化性能的同時,也給代碼實現增加了額外的限定,生成過量指令減緩編譯。演講從地址訪存的角度出發,探討了針對不同的變量類型,如何全面地支持動態下標,使太極語言更加完善。

4、 Taichi的CI/CD系統from 張家聲

blank

Taichi作為一個社區的開源項目,是如何搭建起自己的CI/CD系統的?本次演講主要分享了Taichi在搭建CI/CD的過程中遇到的問題以及解決方案。

5、與社區共建Taichi的Vulkan GPU後端from 餘暢

blank

本演講主要分享了太極社區的開發者們如何協作完成Taichi Vulkan GPU後端的建設,在這個過程中遇到了一系列工程問題及解決方案,同時介紹了Taichi對於Unified Device API的未來規劃。

6、Dynamic SNodes:在運行時靈活添加、刪除Taichi Fields from 劉劍成

blank

本篇演講主要內容為介紹Taichi的新特性——動態申請和回收field。演講基於簡單的案例,簡要分析瞭如何在Taichi中聲明和使用數據結構SNodeTree,和Taichi是如何在即時編譯以及運行時將聲明的SNodeTree利用起來達到訪存的目的的。在此之上,講解瞭如何使用開發的FieldsBuilder類進行動態申請與回收field,並剖析了它在Taichi中的實現細節,分析了這種實現的優勢,和已知的局限性,展望了未來可供進一步開發的方向。

活動當天,太極開源社區共建計劃、太極人從辦公室走到了用戶中間,聆聽所有的問題和建議,Taichi 也從高性能的編程語言走向了越來越廣闊的世界。

blank

太極圖形B站觀看大會回放(持續更新中):

本文來自於微信公眾號“AI科技評論”——“聚焦人工智能前沿研究,關注人工智能青年成長。”AI科技評論是專注人工智能(AI)學術和科學前沿的平台,前身是雷鋒網的學術頻道。
歡迎搜索關注微信公眾號“AI科技評論”(ID:aitechtalk)了解更多相關報導。

What do you think?

Written by marketer

blank

如何診斷網站seo(9點成功教會你SEO技巧)

blank

9月13日早安心語正能量有理語錄句子美麗的早上好圖片大全正能量