偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

位適配器類型

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

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

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

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

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

編譯器優(yōu)化

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

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

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

2. 線程安全推斷

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

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

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

考慮以下情形:

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

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

實(shí)驗(yàn)結(jié)果

「生命游戲」測(cè)試

研究者首先在「生命游戲」上測(cè)試了他們的系統(tǒng)。生命游戲是一個(gè)二維網(wǎng)格游戲,這個(gè)網(wǎng)格中每個(gè)方格居住著一個(gè)活著或死了的細(xì)胞。一個(gè)細(xì)胞在下一個(gè)時(shí)刻的生死取決于相鄰 8 個(gè)方格中活著或死了的細(xì)胞的數(shù)量。如果相鄰方格活著的細(xì)胞數(shù)量過(guò)多,這個(gè)細(xì)胞會(huì)因?yàn)橘Y源匱乏而在下一個(gè)時(shí)刻死去;相反,如果周圍活細(xì)胞過(guò)少,這個(gè)細(xì)胞會(huì)因?yàn)楣聠味廊ァ?/p>

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

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

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

[[411446]]

歐拉流體模擬測(cè)試

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

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

MLS-MPM 算法測(cè)試

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

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

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

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

 

責(zé)任編輯:張燕妮 來(lái)源: 機(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)市場(chǎ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

阿里云計(jì)算存儲(chǔ)

2025-01-26 11:00:00

點(diǎn)贊
收藏

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