成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化

新聞 人工智能
現(xiàn)代動畫電影(包括《冰雪奇緣》等),經(jīng)常使用基于物理的動畫生產(chǎn)特效,豐富感官的體驗?;诹W拥谋硎臼瞧渲谐S玫姆椒ā?/div>

得益于計算機(jī)仿真技術(shù)的不斷發(fā)展,我們能夠在電腦中重建越來越逼真的現(xiàn)實世界,制作出《冰雪奇緣》等優(yōu)秀的特效電影。

但逼真的場景、豐富的細(xì)節(jié)離不開超高精度的物理模擬,因此特效的每一幀幾乎都是用經(jīng)費燒出來的。

現(xiàn)代動畫電影(包括《冰雪奇緣》等),經(jīng)常使用基于物理的動畫生產(chǎn)特效,豐富感官的體驗?;诹W拥谋硎臼瞧渲谐S玫姆椒?。場景越大,粒子就越多。比如,要模擬一個 300 米長的潰壩場景中的水,可能會需要數(shù)千萬粒子,而這些粒子的存儲需要大量顯存。比如說,如果需要96GB的顯存,則需要購置大量高端顯卡,如 4 塊 NVIDIA Quadro P6000 GPU。

哦,對了,一塊 P6000 在 Amazon 上的售價約為 4000 美元,而這樣的 GPU,你要買 4 塊。顯然,這個成本不是普通家庭能玩得起的。

針對這一現(xiàn)狀,快手、麻省理工、浙大、清華的研究者進(jìn)行了物理編譯器自動量化方面的研究,提出了一套用于量化模擬的新的語言抽象和編譯系統(tǒng)——QuanTaichi。它可以使用低精度量化的數(shù)字?jǐn)?shù)據(jù)類型并將其打包(packing)以表示模擬狀態(tài),從而減少了內(nèi)存空間和帶寬消耗。有了這項技術(shù)的加持,高精度的物理模擬只需要一塊 GPU 就能實現(xiàn)

QuanTaichi 的實現(xiàn)基于 MIT CSAIL 胡淵鳴等人之前提出的「太極(Taichi)」編程語言和編譯器,使開發(fā)人員可以輕松地在不同的全精度和量化模擬器之間進(jìn)行切換,以探索最佳的量化方案,并最終在空間和精度之間取得良好的平衡。相關(guān)工作已經(jīng)入選圖形學(xué)頂會 SIGGRAPH 2021,也已經(jīng)被合入到了太極的開源 Github 庫中。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造
  • 論文鏈接:https://yuanming.taichi.graphics/publication/2021-quantaichi/quantaichi.pdf
  • 項目地址:https://yuanming.taichi.graphics/publication/2021-quantaichi/
  • GitHub 地址:https://github.com/taichi-dev/quantaichi

下面這個視頻展示了量化后的仿真結(jié)果。兩只兔子形煙霧(4億體素)演化的逼真程度和全精度浮點數(shù)的結(jié)果不相上下。但需要指出的是,這個 demo 需要的存儲空間僅為全精度浮點數(shù)模擬的二分之一!

為了驗證結(jié)果,研究人員還做了一些用戶調(diào)研,測試題大致如下。你能分辨出哪個是量化后的嗎?

同樣的技術(shù)還可以應(yīng)用在手機(jī)端,使得物理模擬在手機(jī)端提速 40%,讓運算能力不太強(qiáng)的手機(jī)運行更復(fù)雜的效果。

總體來看,QuanTaichi 不僅可以在通用 GPU 計算領(lǐng)域大幅提升研發(fā)效能,助力游戲中的物理模擬、大尺度圖像處理、媒體編解碼、科學(xué)計算等方向,還適用于太極平臺上應(yīng)用的各類模型,能夠提升存儲空間的使用效率,也有助于太極技術(shù)生態(tài)的未來發(fā)展。

目前,太極技術(shù)已經(jīng)讓快手成為首個推出實時液體及煙霧模擬動態(tài)效果的短視頻和直播平臺,行業(yè)首發(fā)了「別哭鴨」、「我要去潛水」、「火焰超能力」等特效。其中,「圣誕快樂」魔法表情成為爆款,有 74 萬用戶拍攝并上傳了視頻,大約有兩千多萬用戶觀看了太極支持的這款魔法表情。

技術(shù)細(xì)節(jié)

用于模擬的量化數(shù)字?jǐn)?shù)據(jù)類型

在 QuanTaichi 中,研究者提出了以下幾種自定義數(shù)值類型:

1. 自定義整數(shù)類型(Custom Int)由用戶指定位數(shù)的整數(shù)類型,包括有符號類型和無符號類型;

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

2. 自定義浮點數(shù)類型(Custom Float):由用戶指定位數(shù)的浮點數(shù)類型,QuanTaichi 為其提供了三種實現(xiàn):

  • 定點數(shù)類型(Fixed-point):定點數(shù)使用一個自定義整數(shù)加一個縮放因子表示,讀取乘以縮放因子實現(xiàn)整型數(shù)到浮點數(shù)的轉(zhuǎn)換;讀取時做相反的操作;
99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造
  • 普通自定義浮點數(shù)類型(Floating-point):由用戶指定的小數(shù)和指數(shù)部分組成;
99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造
  • 共享指數(shù)浮點類型(Shared exponent):同樣由用戶指定的小數(shù)和指數(shù)部分組成。與普通自定義浮點數(shù)類型不同的是,該類型會共享同一個指數(shù)部分。物理模擬中的數(shù)據(jù)通常具有物理含義,當(dāng)某些數(shù)值的絕對值顯著大于其他值時,較小的數(shù)值通常影響不大。比如:考慮三維速度(u,v,w),當(dāng) x 方向的速度的絕對值遠(yuǎn)遠(yuǎn)大于其他兩個方向時,v 和 w 的數(shù)值并不會對模擬造成顯著的影響。

下圖是三種自定義浮點數(shù)在內(nèi)存中的組織形式示例:

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

位適配器類型

當(dāng)前的計算機(jī)體系結(jié)構(gòu)并不支持任意位長度的數(shù)據(jù)讀寫和計算,因此,研究者在 QuanTaichi 中提出了兩種位適配器:

1. 位結(jié)構(gòu)體(Bit structs)。位結(jié)構(gòu)體允許用戶使用多個不同的自定義類型數(shù)據(jù)(如 custom int 5、custom float 12 等)填充一個完整的計算機(jī)硬件原生支持的類型(如 32 位整數(shù)等)。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

2. 位數(shù)組(Bit arrays)。位數(shù)組允許用戶在一個硬件原生類型中存儲多個同樣的自定義類型數(shù)據(jù)。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

編譯器優(yōu)化

1. 位結(jié)構(gòu)體融合存儲

這種優(yōu)化的核心思想是分析 Kernel 的計算流程,將 bit-struct 內(nèi)部的成員變量盡可能批量寫入,減少原子性內(nèi)存訪問次數(shù)。

在實際應(yīng)用中,一個位結(jié)構(gòu)體中的字段經(jīng)常一起訪問,因此一個位結(jié)構(gòu)體的不同組件很可能被一個 kernel 中的多個語句存儲。在這種情況下,研究者對該位結(jié)構(gòu)中的所有存儲使用一個 atomicRMW(atomic read-modify-write), 以減少內(nèi)存訪問開銷。

2. 線程安全推斷

判斷操作是否為線程安全,如果本身是安全的,則不用費時的原子寫操作。QuanTaichi 支持兩種訪存模式的優(yōu)化:

  • 按元素訪問(Element-wise accesses)。在并行模擬器中,許多操作以「元素」方式進(jìn)行:每個獨立線程一次處理一個粒子或體素,與粒子或體素相關(guān)的內(nèi)存加載 / 存儲完全不受數(shù)據(jù)競爭的影響。在這種情況下,可以安全地使用非原子操作來執(zhí)行內(nèi)存加載 / 存儲;
  • 位結(jié)構(gòu)體整體存儲(Storing the entire bit struct)。之所以使用 atomicRMW 而不是非原子操作,是為了避免原子位結(jié)構(gòu)體中的部分位被程序并發(fā)修改。但當(dāng)位結(jié)構(gòu)體整體存儲時,我們并不需要擔(dān)心這一問題,因此可以使用非原子操作代替計算代價昂貴的 atomicRMW。

3. 位數(shù)組向量化

考慮以下情形:

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

雖然該研究中的系統(tǒng)可以很容易地提高存儲效率,但是這種按位 for 循環(huán)的計算效率很低,原因有兩個。首先,我們必須為模擬的 1 位數(shù)值使用硬件原生的 32 位整數(shù)寄存器,這只使用了操作位寬度的 1/32。其次,當(dāng)逐位存儲結(jié)果時,為了線程安全,代碼生成器必須發(fā)出大量昂貴的 atomicRMW 操作,因為多個 CPU/GPU 線程可能會在一個 u32 中寫入不同的位,從而導(dǎo)致數(shù)據(jù)爭用。為此,研究者實現(xiàn)了以下三種優(yōu)化方法:按位進(jìn)行循環(huán)向量化;帶有偏移量的位向量化讀??;位向量化的整數(shù)加法。對位數(shù)組加載、存儲并對算法進(jìn)行矢量化,以便每次迭代都處理一個完整的 32 x u1 位數(shù)組,而不是單個的 u1。

實驗結(jié)果

「生命游戲」測試

研究者首先在「生命游戲」上測試了他們的系統(tǒng)。生命游戲是一個二維網(wǎng)格游戲,這個網(wǎng)格中每個方格居住著一個活著或死了的細(xì)胞。一個細(xì)胞在下一個時刻的生死取決于相鄰 8 個方格中活著或死了的細(xì)胞的數(shù)量。如果相鄰方格活著的細(xì)胞數(shù)量過多,這個細(xì)胞會因為資源匱乏而在下一個時刻死去;相反,如果周圍活細(xì)胞過少,這個細(xì)胞會因為孤單而死去。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

每個細(xì)胞的「生」或「死」兩種狀態(tài)可以用一個位來表示。在 C 語言等傳統(tǒng)語言中,用戶必須使用 char (u8) 類型來表示細(xì)胞狀態(tài),除非他們手動打包 / 拆封這些狀態(tài)。但在 QuanTaichi 系統(tǒng)中,用戶可以在不修改任何計算代碼的情況下將存儲效率提升至原來的 8 倍。

OTCA 元像素是「生命游戲」中的一種特殊結(jié)構(gòu),該結(jié)構(gòu)由 2048x2048 個細(xì)胞組成,其整體行為與單個細(xì)胞行為一致。研究者在單張 NVidia RTX 3080 Ti (10GB) 上實現(xiàn)了 70 x 70 個 OTCA 元像素,即超過 200 億個細(xì)胞的生命游戲模擬。

[[411446]]

歐拉流體模擬測試

研究者實現(xiàn)了一個基于稀疏網(wǎng)格的 advection-reflection 流體模擬求解器。通過量化方法,他們成功地將每一個網(wǎng)格所需的存儲空間從 84 個字節(jié)壓縮到了 44 個字節(jié)。在 NVidia Tesla V100(32GB)上,他們實現(xiàn)了超過 4.2 億個激活稀疏網(wǎng)格的煙霧模擬。下圖分別是量化的方案和模擬結(jié)果。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造
99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

MLS-MPM 算法測試

研究者選擇了 MLS-MPM 算法測試他們的系統(tǒng)在混合歐拉 - 拉格朗日方法上的有效性。具體來說,他們選擇了一種量化方案,使得每個粒子消耗的存儲空間從 68 個字節(jié)下降到 40 個字節(jié)。在 NVidia RTX 3090 上,他們實現(xiàn)了超過 2.3 億個粒子的彈性體模擬。下圖分別是量化方案和模擬結(jié)果:

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造
99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造

由于 iPhone 的 GPU 對整型運算增加了額外的優(yōu)化和加速,因此研究者還在移動設(shè)備(iPhoneXS)上測試了量化后的 MLS-MPM 的表現(xiàn)。與臺式機(jī)相比,移動設(shè)備的計算能力相對有限,并且對實時響應(yīng)有強(qiáng)烈的需求。因此,它們通常只能運行小規(guī)模的模擬,存儲并不是真正的問題。但在測試中,研究者驚訝地發(fā)現(xiàn):在背景網(wǎng)格上使用量化數(shù)據(jù)類型仍然是有提升的。因為移動 GPU 通常只支持 32 位整數(shù)的高性能原生 atomicAdd,而并不原生支持浮點數(shù)的 32 位 atomicAdd。使用「ti.quant.fixed(fration=32)」表示網(wǎng)格數(shù)據(jù)可以將軟件模擬的 32 位浮點數(shù) atomicAdd 轉(zhuǎn)換為硬件原生的 32 位整數(shù) atomicAdd,顯著提高了在 iPhone XS 上運行的 MLS-MPM 程序的 P2G 性能。

99行代碼實現(xiàn)冰雪奇緣特效的太極再進(jìn)化,胡淵鳴團(tuán)隊快手聯(lián)合打造 

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心Pro
相關(guān)推薦

2021-07-20 17:38:43

技術(shù)資訊

2020-01-07 08:54:37

代碼開發(fā)工具

2023-10-30 16:02:20

區(qū)塊鏈元宇宙

2019-12-03 09:59:00

PythonAI開發(fā)

2021-06-18 10:12:09

JS代碼前端

2009-10-29 16:28:04

2015-10-08 10:55:55

物聯(lián)網(wǎng)市場新版圖

2024-02-04 15:58:53

C++ 17編程代碼

2025-07-01 16:04:52

2020-12-30 14:03:29

騰訊AI人工智能

2025-02-24 10:07:04

2013-01-19 16:25:18

網(wǎng)站安全安全寶

2018-06-11 16:11:34

騰訊云在線教育

2022-04-24 15:15:57

前端技術(shù)阿里

2018-06-28 22:04:25

智能體華為云人工智能

2021-05-28 12:26:33

阿里云計算存儲

2025-01-26 11:00:00

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91久久精品国产免费一区 | 国产精品18hdxxxⅹ在线 | 国产午夜精品一区二区三区四区 | 99re视频在线 | 婷婷综合五月天 | 最新一级毛片 | 久久久久国产 | 久久国产精品无码网站 | 久久综合久久综合久久 | 成年人视频在线免费观看 | 成人免费大片黄在线播放 | 成人在线免费电影 | 久草中文网 | 亚洲国产视频一区二区 | 黄色在线免费观看视频 | 四虎首页| 国产精品明星裸体写真集 | 日本一道本 | 国产精品www | 日本成人一区二区 | 999精品视频 | 日韩成人免费视频 | 91久久国产综合久久91精品网站 | 免费国产一区二区视频 | 天天久久 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 国内精品久久久久久 | 欧美日韩国产三级 | 青青草av在线播放 | 国产精品免费大片 | 国产精品久久久久久久7777 | 亚洲 自拍 另类 欧美 丝袜 | 一级女毛片| 国产精品久久久久久久午夜片 | 色播视频在线观看 | 亚洲国产精品人人爽夜夜爽 | 国产 日韩 欧美 中文 在线播放 | 日韩中文字幕视频 | 91在线一区二区 | 国产福利观看 | 日韩a|