第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

火炬就地操作以節(jié)省內存(softmax)

火炬就地操作以節(jié)省內存(softmax)

哈士奇WWW 2021-09-14 16:41:49
火炬中的一些操作是就地執(zhí)行的。例如,像 += 這樣的速記運算符。是否可以就地執(zhí)行其他操作,例如softmax?我目前正在研究語言處理。該模型在大量詞匯表上生成一長串概率分布。這個最終輸出張量負責大約 60% 的分配內存。這是一個巨大的問題,因為我需要計算一個 softmax 并且將所需的內存加倍。這是問題的一個例子。我對張量 t 不感興趣,只對它的 softmax 感興趣:import numpy as npimport torchimport torch.nn.functional as Ft = torch.tensor(np.zeros((30000,30000))).cuda()  #allocates 6.71 GB of GPUsoftmax = F.softmax(t, 1)  #out of memory errordel t  #too late, program crashed即使以下也不起作用:F.softmax(torch.tensor(np.zeros((30000,30000))).cuda(), 1)
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

到目前為止,PyTorch 是不可能的。您可以嘗試推出自己的GPU 內核,但我看到前面有麻煩(如果不是墻的話),這可能是此操作最初不可用的原因。

除了歸一化需要減少之外,Softmax 可以很容易地并行應用。減少是非常重要的,它們可以是就地并行的(請記住,原子的使用相當于并發(fā)但不是并行的操作)。這意味著您的就地操作無論如何都必須在幕后分配,這違背了目的,或者運行得非常慢。請考慮我的回答有點推測性,我不是 GPGPU 的專家,但我的觀點是,廉價、快速和正確地解決至少是一個困難的問題。

話雖如此,如果您只關心 softmax,在我看來,您似乎在進行推理。也許對于您的應用程序來說,將 logits 移動到 CPU 并在那里運行 softmax 是一個可行的選擇,而您的 GPU 已經(jīng)在處理下一批?


查看完整回答
反對 回復 2021-09-14
  • 2 回答
  • 0 關注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號