2023武漢客運站現(xiàn)在進站還需不需要看健康碼?|天天視訊
2023武漢客運站現(xiàn)在進站還需不需要看健康碼?通過致電027—96513確定,武漢客運站乘車不需要出示健康碼及核酸證明,但現(xiàn)在還需要測體溫。后續(xù)
點藍色字關(guān)注“機器學(xué)習(xí)算法工程師”
設(shè)為星標,干貨直達!
【資料圖】
?PyTorch 2.0引入了**torch.compile()**來加速模型,這篇文章我們將介紹如何使用**torch.compile()**來加速Hugging Face和TIMM庫的模型。
torch.compile() 使得嘗試不同的編譯器后端變得容易,從而使用單行裝飾器 torch.compile() 使 PyTorch 代碼更快。它可以直接在 nn.Module 上工作,作為 torch.jit.script() 的直接替代品,但不需要您進行任何源代碼更改。我們希望這一行代碼更改能夠為您已經(jīng)運行的絕大多數(shù)模型提供 30%-2 倍的訓(xùn)練時間加速。
opt_module=torch.compile(module)
torch.compile 支持任意 PyTorch 代碼、控制流、變異,并帶有對動態(tài)形狀的實驗性支持。我們對這一發(fā)展感到非常興奮,我們將其稱為 PyTorch 2.0。
這個版本對我們來說不同的是,我們已經(jīng)對一些最流行的開源 PyTorch 模型進行了基準測試,并獲得了 30% 到 2 倍的大幅加速(見https://github.com/pytorch/torchdynamo/issues/681) 。
這里沒有技巧,我們已經(jīng) pip 安裝了流行的庫,比如https://github.com/huggingface/transformers, https://github.com/huggingface/accelerate 和 https://github.com/rwightman/pytorch-image-models等流行的庫,然后對它們運行 torch.compile() 就可以了。
很難同時獲得性能和便利性,但這就是核心團隊發(fā)現(xiàn) PyTorch 2.0 如此令人興奮的原因。Hugging Face 團隊也很興奮,用他們的話說:
TIMM 的主要維護者 Ross Wightman:“PT 2.0 開箱即用,適用于推理和訓(xùn)練工作負載的大多數(shù) timm 模型,無需更改代碼。”
Sylvain Gugger 是 transformers 和 accelerate 的主要維護者:“只需添加一行代碼,PyTorch 2.0 就可以在訓(xùn)練 Transformers 模型時提供 1.5 到 2.x 的加速。這是引入混合精度訓(xùn)練以來最激動人心的事情!”
本教程將向您展示如何使用這些加速,這樣您就可以像我們一樣對 PyTorch 2.0 感到興奮。
安裝教程對于 GPU(新一代 GPU 的性能會大大提高):
pip3installnumpy--pretorch--force-reinstall--extra-index-urlhttps://download.pytorch.org/whl/nightly/cu117
對于CPU:
pip3install--pretorch--extra-index-urlhttps://download.pytorch.org/whl/nightly/cpu
當(dāng)安裝好后,你可以通過以下方式來進行驗證:
gitclonehttps://github.com/pytorch/pytorchcdtools/dynamopythonverify_dynamo.py
另外一種安裝方式是采用docker,我們還在 PyTorch nightly 二進制文件中提供了所有必需的依賴項,您可以使用它們下載:
dockerpullghcr.io/pytorch/pytorch-nightly
對于臨時實驗,只需確保您的容器可以訪問所有 GPU:
dockerrun--gpusall-itghcr.io/pytorch/pytorch-nightly:latest/bin/bash使用教程
讓我們從一個簡單的例子開始,一步步把事情復(fù)雜化。請注意,您的 GPU 越新,您可能會看到更顯著的加速。
importtorchdeffn(x,y):a=torch.sin(x).cuda()b=torch.sin(y).cuda()returna+bnew_fn=torch.compile(fn,backend="inductor")input_tensor=torch.randn(10000).to(device="cuda:0")a=new_fn()
這個例子實際上不會運行得更快,但它具有教育意義。
以 torch.cos() 和 torch.sin() 為特色的示例,它們是逐點操作的示例,因為它們在向量上逐個元素地進行操作。你可能真正想要使用的一個更著名的逐點運算是類似 torch.relu() 的東西。eager模式下的逐點操作不是最優(yōu)的,因為每個操作都需要從內(nèi)存中讀取一個張量,進行一些更改,然后寫回這些更改。
PyTorch 2.0 為您所做的最重要的優(yōu)化是融合。
回到我們的示例,我們可以將 2 次讀取和 2 次寫入變成 1 次讀取和 1 次寫入,這對于較新的 GPU 來說尤其重要,因為瓶頸是內(nèi)存帶寬(您可以多快地向 GPU 發(fā)送數(shù)據(jù))而不是計算(您的速度有多快) GPU 可以處理浮點運算)。
PyTorch 2.0 為您做的第二個最重要的優(yōu)化是 CUDA graphs。CUDA graphs有助于消除從 python 程序啟動單個內(nèi)核的開銷。
torch.compile() 支持許多不同的后端,但我們特別興奮的一個是生成 Triton 內(nèi)核(https://github.com/openai/triton,用 Python 編寫的,但性能優(yōu)于絕大多數(shù)手寫的 CUDA 內(nèi)核)的 Inductor。假設(shè)我們上面的示例名為 trig.py,我們實際上可以通過運行來檢查代碼生成的 triton 內(nèi)核:
TORCHINDUCTOR_TRACE=1pythontrig.py
@pointwise(size_hints=[16384],filename=__file__,meta={"signature":{0:"*fp32",1:"*fp32",2:"i32"},"device":0,"constants":{},"configs":[instance_descriptor(divisible_by_16=(0,1,2),equal_to_1=())]})@triton.jitdefkernel(in_ptr0,out_ptr0,xnumel,XBLOCK:tl.constexpr):xnumel=10000xoffset=tl.program_id(0)*XBLOCKxindex=xoffset+tl.reshape(tl.arange(0,XBLOCK),[XBLOCK])xmask=xindex你可以驗證融合這兩個 sins 確實發(fā)生了,因為這兩個 sin 操作發(fā)生在一個單一的 Triton 內(nèi)核中,并且臨時變量保存在寄存器中,可以非??焖俚卦L問。
下一步,讓我們嘗試一個真實的模型,比如來自 PyTorch hub 的 resnet50。
importtorchmodel=torch.hub.load("pytorch/vision:v0.10.0","resnet18",pretrained=True)opt_model=torch.compile(model,backend="inductor")model(torch.randn(1,3,64,64))如果您實際運行,您可能會驚訝于第一次運行很慢,那是因為正在編譯模型。后續(xù)運行會更快,因此在開始對模型進行基準測試之前預(yù)熱模型是常見的做法。
您可能已經(jīng)注意到我們?nèi)绾卧诖颂幨褂谩癷nductor”顯式傳遞編譯器的名稱,但它不是唯一可用的后端,您可以在 torch._dynamo.list_backends() 中運行以查看可用后端的完整列表。為了好玩,您應(yīng)該嘗試 aot_cudagraphs 或 nvfuser。
現(xiàn)在讓我們做一些更有趣的事情,我們的社區(qū)經(jīng)常使用來自 transformers (https://github.com/huggingface/transformers) 或 TIMM (https://github.com/rwightman/pytorch-image-models)的預(yù)訓(xùn)練模型和我們的設(shè)計之一PyTorch 2.0 的目標是任何新的編譯器堆棧都需要開箱即用,可以與人們實際運行的絕大多數(shù)模型一起工作。因此,我們將直接從 Hugging Face hub 下載預(yù)訓(xùn)練模型并對其進行優(yōu)化。
importtorchfromtransformersimportBertTokenizer,BertModel#Copypastedfromherehttps://huggingface.co/bert-base-uncasedtokenizer=BertTokenizer.from_pretrained("bert-base-uncased")model=BertModel.from_pretrained("bert-base-uncased").to(device="cuda:0")model=torch.compile(model)#Thisistheonlylineofcodethatwechangedtext="Replacemebyanytextyou"dlike."encoded_input=tokenizer(text,return_tensors="pt").to(device="cuda:0")output=model(**encoded_input)如果您從模型和 encoded_input 中刪除 to(device="cuda:0") ,那么 PyTorch 2.0 將生成 C++ 內(nèi)核,這些內(nèi)核將針對在您的 CPU 上運行進行優(yōu)化。你可以檢查 Triton 或 C++ 內(nèi)核的 BERT,它們顯然比我們上面的三角函數(shù)示例更復(fù)雜,但如果你了解 PyTorch,你也可以類似地瀏覽它并理解。
相同的代碼也可以https://github.com/huggingface/accelerate 和 DDP 一起使用。
同樣讓我們嘗試一個 TIMM 示例:
importtimmimporttorchmodel=timm.create_model("resnext101_32x8d",pretrained=True,num_classes=2)opt_model=torch.compile(model,backend="inductor")opt_model(torch.randn(64,3,7,7))我們使用 PyTorch 的目標是構(gòu)建一個廣度優(yōu)先的編譯器,該編譯器將加速人們在開源中運行的絕大多數(shù)實際模型。Hugging Face Hub 最終成為我們非常有價值的基準測試工具,確保我們所做的任何優(yōu)化實際上都有助于加速人們想要運行的模型。
本文翻譯自https://pytorch.org/blog/Accelerating-Hugging-Face-and-TIMM-models/
[ 相關(guān)文章 ]
2023武漢客運站現(xiàn)在進站還需不需要看健康碼?通過致電027—96513確定,武漢客運站乘車不需要出示健康碼及核酸證明,但現(xiàn)在還需要測體溫。后續(xù)
經(jīng)江蘇省政府研究確定,今年全省交通基礎(chǔ)設(shè)施建設(shè)投資將達到2000億元,同比增長10 7%,將進一步完善鐵路網(wǎng)絡(luò)、提升公路效能、放大水運優(yōu)勢、提
網(wǎng)貸逾期一般會上征信,有些借貸機構(gòu)在用戶逾期后一天后就會上報給征信機構(gòu),而有些借貸機構(gòu)則是會在幾天后上報給征信機構(gòu),因為有些借貸機構(gòu)可
【 赴韓中國人自費核酸一次8萬韓元 隔離睡地板】赴韓中國人自費核酸一次8萬韓元今日,中國駐韓國大使館發(fā)布關(guān)于暫停簽發(fā)韓國公民赴華短期簽證
智通財經(jīng)APP獲悉,花旗發(fā)布研究報告稱,予海天國際(01882)“買入”評級,仍列入中國工業(yè)股首選,目標價由24港元上調(diào)至28港元。受惠于防疫政策
網(wǎng)貸逾期一般會上征信,有些借貸機構(gòu)在用戶逾期后一天后就會上報給征信機構(gòu),而有些借貸機構(gòu)則是會在幾天后上報給征信機構(gòu),因為有些借貸機構(gòu)可
IT之家1月10日消息,麻省理工學(xué)院MIT的初創(chuàng)公司Brelyon開創(chuàng)了一類新的超沉浸式顯示技術(shù),并在CES2023上展示了概念產(chǎn)品BrelyonFusion,這是一款
1月9日主題公園板塊較上一交易日下跌0 03%,曲江文旅領(lǐng)跌。當(dāng)日上證指數(shù)報收于3176 08,上漲0 58%。深證成指報收于11450 15,上漲0 72%。主題
網(wǎng)貸逾期一般會上征信,有些借貸機構(gòu)在用戶逾期后一天后就會上報給征信機構(gòu),而有些借貸機構(gòu)則是會在幾天后上報給征信機構(gòu),因為有些借貸機構(gòu)可
又一汽車品牌間接退出中國,謳歌官網(wǎng)已無法訪問,入華16年終落幕
職工因工致殘被鑒定為五級、六級傷殘的,享受以下待遇:(一)從工傷保險基金按傷殘等級支付一次性傷殘補助金,標準為:五級傷殘為18個月的本
SaaS行業(yè)開始大規(guī)模裁員了。比如,Salesforce計劃裁減10%,涉及約8000名員工;國內(nèi)SaaS公司的裁員比例,大多也不會比這個低。海外SaaS企業(yè)裁
中新網(wǎng)1月7日電(中新財經(jīng)李金磊)1月7日,今年春運首日疊加除夕火車票開售,部分熱門火車票線路十分緊俏。同程旅行數(shù)據(jù)顯示,早上8點除夕火車票
1、如果是年幼的小貓咪粘人,寵主需要耐心的等待小貓度過這粘人期,或許貓咪長大之后就不粘人了呢,還是要好好珍惜這段時間。2、如果貓咪感覺到冷
再見,老朋友哈達迪!恨你、怨你、愛你、敬你
2023年01月05日公告發(fā)布
食材:薏米(100克),茯苓(100克),熟黑芝麻(100克),蜂蜜(適量),淮山藥干(100克),赤小豆(100克),芡實(100克),熟糯米粉(適量
靠營銷擦邊的海信賺錢乏力,它還能走多遠?作者|亦古月編輯|江湖哥四年一度的世界杯比賽已經(jīng)在卡塔爾落下帷幕,本屆世界杯舉行期間,中國元素
證券代碼:600582證券簡稱:天地科技公告編號:臨2023-001號天地科技股份有限公司關(guān)于變更簽字注冊會計師的公告本公司董事
截至2023年1月6日收盤,空港股份(600463)報收于8 59元,下跌1 94%,換手率2 08%,成交量6 25萬手,成交額5367 14萬元。
[ 相關(guān)新聞 ]
Copyright 2015-2022 時代醫(yī)院網(wǎng) 版權(quán)所有 備案號: 聯(lián)系郵箱: 514 676 113@qq.com