chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何測(cè)量各種工作負(fù)載和GPU配置下收縮操作的性能

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:Markus Hoehnerbach ? 2022-04-20 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

張量收縮是機(jī)器學(xué)習(xí)、計(jì)算化學(xué)和量子計(jì)算中許多重要工作的核心。隨著科學(xué)家和工程師們對(duì)不斷增長(zhǎng)的問(wèn)題的研究,基礎(chǔ)數(shù)據(jù)變得越來(lái)越大,計(jì)算時(shí)間也越來(lái)越長(zhǎng)。

當(dāng)張量收縮不再適合單個(gè) GPU 時(shí),或者如果在單個(gè) GPU 上花費(fèi)的時(shí)間太長(zhǎng),自然下一步是將收縮分布到多個(gè) GPU 上。我們一直在用這個(gè)新功能擴(kuò)展 cuTENSOR ,并將其作為一個(gè)名為 cuTENSORMg (多 GPU )的新庫(kù)發(fā)布。它在塊循環(huán)分布張量上提供單進(jìn)程多 GPU 功能。

cuTENSORMg 的copy和contraction操作大致分為句柄、張量描述符和描述符。在這篇文章中,我們將解釋句柄和張量描述符,以及復(fù)制操作是如何工作的,并演示如何執(zhí)行張量收縮。然后,我們將展示如何測(cè)量各種工作負(fù)載和 GPU 配置下收縮操作的性能。

庫(kù)把手

庫(kù)句柄表示參與計(jì)算的設(shè)備集。句柄還包含跨調(diào)用重用的數(shù)據(jù)和資源。通過(guò)將設(shè)備列表傳遞給cutensorMgCreate函數(shù),可以創(chuàng)建庫(kù)句柄:

cutensorMgCreate(&handle, numDevices, devices);

cuTENSORMg 中的所有對(duì)象都是堆分配的。因此,必須通過(guò)匹配的destroy調(diào)用釋放它們。為了簡(jiǎn)潔起見(jiàn),我們?cè)谶@篇文章中沒(méi)有展示這些,但是生產(chǎn)代碼應(yīng)該銷(xiāo)毀它創(chuàng)建的所有對(duì)象,以避免泄漏。

cutensorMgDestroy(handle);

所有庫(kù)調(diào)用都返回cutensorStatus_t類(lèi)型的錯(cuò)誤代碼。在生產(chǎn)中,您應(yīng)該始終檢查錯(cuò)誤代碼,以便盡早檢測(cè)故障或使用問(wèn)題。為了簡(jiǎn)潔起見(jiàn),我們?cè)诒疚闹惺÷粤诉@些檢查,但它們包含在相應(yīng)的示例代碼中。

除了錯(cuò)誤代碼, cuTENSORMg 還提供與 cuTENSOR 類(lèi)似的日志記錄功能 ??梢酝ㄟ^(guò)適當(dāng)設(shè)置CUTENSORMG_LOG_LEVEL環(huán)境變量來(lái)激活這些日志。例如,CUTENSORMG_LOG_LEVEL=1將為您提供有關(guān)返回的錯(cuò)誤代碼的附加信息。

張量描述符

張量描述符描述了張量在內(nèi)存中的布局以及在設(shè)備中的分布。對(duì)于每種模式,有三個(gè)核心概念來(lái)確定布局:

extent:每個(gè)模式的邏輯大小。

blockSize:將extent細(xì)分為大小相等的塊,但最后的剩余塊除外。

deviceCount:確定塊在設(shè)備上的分布方式。

圖 1 顯示了extent和block size如何細(xì)分二維張量。

A 3x3 square showing block size vs extent. Block size accounts for a 1x1 block whereas extent is a large square layered on top of several blocks but does not exceed the full parameter of the 3x3 square.

圖 1 帶有范圍和塊的張量數(shù)據(jù)布局。綠色表示二維張量,藍(lán)色表示塊大小導(dǎo)致的塊。

A 3x3 square showing deviceCount [0] on the Y axis and deviceCount[1] on the X axis.

圖 2 以塊循環(huán)方式在設(shè)備上分布?jí)K張量;不同的顏色代表不同的設(shè)備。

塊以循環(huán)方式分布,這意味著連續(xù)的塊被分配給不同的設(shè)備。圖 2 顯示了塊到設(shè)備的逐塊分布,將設(shè)備分配到使用另一個(gè)數(shù)組devices編碼的塊。該陣列是一個(gè)密集的柱狀主張量,其范圍與設(shè)備計(jì)數(shù)類(lèi)似。

A 4x4 block with Y axis as blockStride[0] and X axis blockStride[1]. This block is comprised of smaller by 4x4 blocks with elementStride[1] as the X axis and and elementStride[0] as the Y axis.

圖 3 使用元素步距和塊步距的設(shè)備上數(shù)據(jù)布局。

最后,設(shè)備上的確切數(shù)據(jù)布局由每種模式的elementStride和blockStride 值決定。它們分別以元素為單位在線性存儲(chǔ)器中確定給定模式下兩個(gè)相鄰元素和相鄰塊的位移(圖 3 )。

這些屬性都是使用cutensorMgCreateTensorDescriptor調(diào)用設(shè)置的:

cutensorMgCreateTensorDescriptor(handle, &desc, numModes, extent, elementStride, blockSize, blockStride, deviceCount, numDevices, devices, type);

可以將NULL傳遞給elementStride、blockSize、blockStride和deviceCount。

如果elementStride是NULL,則使用通用列主布局假定數(shù)據(jù)布局密集。如果blockSize是NULL,則等于extent。如果blockStride是NULL,則它等于blockSize * elementStride,這將產(chǎn)生交錯(cuò)塊格式。如果deviceCount為NULL,則所有設(shè)備計(jì)數(shù)都設(shè)置為 1 。在這種情況下,張量是分布式的,完全駐留在devices[0]的內(nèi)存中。

通過(guò)將CUTENSOR_MG_DEVICE_HOST作為所屬設(shè)備傳遞,可以指定 tensor 位于主機(jī)上的固定、托管或定期分配的內(nèi)存中。

復(fù)制操作

copy操作可以更改數(shù)據(jù)布局,包括將張量重新分配到不同的設(shè)備。其參數(shù)是源和目標(biāo)張量描述符(descSrc和descDst),以及源和目標(biāo)模式列表(modesSrc和modesDst)。這兩個(gè)張量在重合模式下的范圍必須匹配,但它們的其他方面可能不同。一個(gè)可能位于主機(jī)上,另一個(gè)跨設(shè)備,它們可能具有不同的阻塞和步幅。

與 cuTENSORMg 中的所有操作一樣,它分三步進(jìn)行:

cutensorMgCopyDescriptor_t:編碼應(yīng)該執(zhí)行的操作。

cutensorMgCopyPlan_t:編碼操作的執(zhí)行方式。

cutensorMgCopy:根據(jù)計(jì)劃執(zhí)行操作。

第一步是創(chuàng)建復(fù)制描述符:

cutensorMgCreateCopyDescriptor(handle, &desc, descDst, modesDst, descSrc, modesSrc);

有了拷貝描述符,您可以查詢(xún)所需的設(shè)備端和主機(jī)端工作空間的數(shù)量。deviceWorkspaceSize陣列的元素?cái)?shù)量與手柄中的設(shè)備數(shù)量相同。i-th 元素是句柄中i-th 設(shè)備所需的工作空間量。

cutensorMgCopyGetWorkspace(handle, desc, deviceWorkspaceSize, &hostWorkspaceSize);

確定工作空間大小后,規(guī)劃副本。你可以傳遞一個(gè)更大的工作空間大小,呼叫可能會(huì)利用更多的工作空間,或者你可以嘗試傳遞一個(gè)更小的大小。規(guī)劃可能能夠適應(yīng)這一點(diǎn),否則可能會(huì)產(chǎn)生錯(cuò)誤。

cutensorMgCreateCopyPlan(handle, &plan, desc, deviceWorkspaceSize, hostWorkspaceSize

最后,計(jì)劃完成后,執(zhí)行copy操作。

cutensorMgCopy(handle, plan, ptrDst, ptrSrc, deviceWorkspace, hostWorkspace, streams);

在這個(gè)調(diào)用中,ptrDstptrSrc是指針數(shù)組。它們包含對(duì)應(yīng)的張量描述符中每個(gè)設(shè)備的一個(gè)指針。在本例中,ptrDst[0]對(duì)應(yīng)于作為devices[0]傳遞給cutensorMgCreateTensorDescriptor的設(shè)備。

另一方面,deviceWorkspacestreams也是數(shù)組,其中每個(gè)條目對(duì)應(yīng)一個(gè)設(shè)備。它們是根據(jù)庫(kù)句柄中設(shè)備的順序排序的,例如deviceWorkspace[0]streams[0]對(duì)應(yīng)于在devices[0]傳遞給cutensorMgCreate的設(shè)備。工作空間必須至少與傳遞給cutensorMgCreateCopyPlan的工作空間大小相同。

收縮手術(shù)

cuTENSORMg 庫(kù)的核心是contraction操作。它目前實(shí)現(xiàn)了一個(gè)或多個(gè)設(shè)備上張量的張量收縮,但將來(lái)可能支持主機(jī)上的張量。作為復(fù)習(xí),收縮是以下形式的操作:

D_{M,N,L} \leftarrow \alpha \sum_{K} A_{K,M,L} \cdot B_{K,N,L} + \beta C_{M,N,L^{3}}

其中A、BCD是張量,MN、LK是可以任意排列和交錯(cuò)的模式列表。

copy操作一樣,它分三個(gè)階段進(jìn)行:

  • cutensorMgCreateContractionDescriptor:對(duì)問(wèn)題進(jìn)行編碼。
  • cutensorMgCreateContractionPlan:對(duì)實(shí)現(xiàn)進(jìn)行編碼。
  • cutensorMgContraction:使用計(jì)劃并執(zhí)行實(shí)際收縮。

首先,根據(jù)張量描述符、模式列表和所需的計(jì)算類(lèi)型(例如計(jì)算期間可能使用的最低精度數(shù)據(jù))創(chuàng)建收縮描述符。

cutensorMgCreateContractionDescriptor(handle, &desc, descA, modesA, descB, modesB, descC, modesC, descD, modesD, compute);

由于收縮操作有更多的自由度,您還必須初始化find對(duì)象,以便更好地控制給定問(wèn)題描述符的計(jì)劃創(chuàng)建。目前,這個(gè)find對(duì)象只有一個(gè)默認(rèn)設(shè)置:

cutensorMgCreateContractionFind(handle, &find, CUTENSORMG_ALGO_DEFAULT);

然后,您可以按照為copy操作所做的操作來(lái)查詢(xún)工作空間需求。與該操作相比,您還傳入了findworkspace首選項(xiàng):

cutensorMgContractionGetWorkspace(handle, desc, find, CUTENSOR_WORKSPACE_RECOMMENDED, deviceWorkspaceSize, &hostWorkspaceSize);

創(chuàng)建一個(gè)計(jì)劃:

cutensorMgCreateContractionPlan(handle, &plan, desc, find, deviceWorkspaceSize, hostWorkspaceSize);

最后,使用計(jì)劃執(zhí)行收縮:

cutensorMgContraction(handle, plan, alpha, ptrA, ptrB, beta, ptrC, ptrD, deviceWorkspace, hostWorkspace, streams);

在這個(gè)調(diào)用中, alpha 和 beta 是與D張量類(lèi)型相同的主機(jī)指針,除非D張量是半精度或BFloat16精度,在這種情況下是single precision。不同數(shù)組ptrA、ptrBptrCptrD中指針的順序?qū)?yīng)于它們?cè)诿枋龇?code style="font-size:inherit;color:inherit;margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;vertical-align:baseline;background-color:rgb(244,244,244);">devices數(shù)組中的順序。deviceWorkspacestreams數(shù)組中指針的順序與庫(kù)句柄的devices數(shù)組中的順序相對(duì)應(yīng)。

表演

你可以在CUDA 庫(kù)樣本GitHub 回購(gòu)。我們將其擴(kuò)展為兩個(gè)參數(shù): GPU 的數(shù)量和比例因子。您可以隨意嘗試其他收縮、塊大小和縮放模式。它是以這樣一種方式編寫(xiě)的,即在保持 K 不變的情況下,將 M 和 N 放大。它實(shí)現(xiàn)了形狀的幾乎 GEMM 形狀的張量收縮:

C_{M^{0}N^{0}M^{1}N^{1}M^{2}N^{2}} \leftarrow A_{M^{0}K^{0}M^{1}K^{1}M^{2}K^{2} B_K^{0}N^{0}K^{1}N^{1}K^{2}N^{2}}

M1和N1按比例放大,這些尺寸中的塊大小保持負(fù)載大致平衡。下圖顯示了在 DGX A100 上測(cè)量時(shí)的比例關(guān)系。

關(guān)于作者

Markus Hoehnerbach 是 cuTENSOR 和 cuTENSORMg 的高級(jí)軟件工程師。他擁有 RWTH 亞琛大學(xué)計(jì)算機(jī)科學(xué)博士學(xué)位。他感興趣的領(lǐng)域是結(jié)構(gòu)化和非結(jié)構(gòu)化張量的高性能計(jì)算及其在機(jī)器學(xué)習(xí)和計(jì)算科學(xué)中的應(yīng)用。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5091

    瀏覽量

    134392
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8540

    瀏覽量

    136206
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何通過(guò)交替式幾何處理實(shí)現(xiàn)更優(yōu)的多核?GPU?擴(kuò)展

    在理論上,通過(guò)增加更多GPU核心來(lái)提升性能似乎很簡(jiǎn)單:核心越多,性能越強(qiáng)。但在實(shí)踐中,這是圖形架構(gòu)領(lǐng)域最棘手的挑戰(zhàn)之一。雖然某些工作負(fù)載因其
    的頭像 發(fā)表于 12-01 10:12 ?295次閱讀
    如何通過(guò)交替式幾何處理實(shí)現(xiàn)更優(yōu)的多核?<b class='flag-5'>GPU</b>?擴(kuò)展

    如何在多顯卡環(huán)境配置OLLAMA實(shí)現(xiàn)GPU負(fù)載均衡

    本文將帶你深入了解如何在多顯卡環(huán)境配置OLLAMA,實(shí)現(xiàn)GPU負(fù)載均衡,并分享生產(chǎn)環(huán)境中的最佳實(shí)踐。無(wú)論你是剛接觸GPU集群還是尋求
    的頭像 發(fā)表于 07-24 14:12 ?2664次閱讀

    TMS熱收縮標(biāo)識(shí)套管規(guī)格含義

    比率為3:1,意味著它能夠緊密的粘合在電纜線上,提供清晰且持久的標(biāo)識(shí)效果。此外,TMS熱收縮標(biāo)識(shí)套管具有優(yōu)異的耐磨損和耐化學(xué)性能,哪怕在熱縮前后遇到清洗劑或軍工用燃料的侵蝕,色碼牢固性依舊符合美國(guó)軍標(biāo)
    發(fā)表于 05-14 09:44

    ?為什么GPU性能效率比峰值性能更關(guān)鍵

    在評(píng)估GPU性能時(shí),通常首先考察三個(gè)指標(biāo):圖形工作負(fù)載的紋理率(GPixel/s)、浮點(diǎn)運(yùn)算次數(shù)(FLOPS)以及它們能處理計(jì)算和AI工作
    的頭像 發(fā)表于 03-13 08:34 ?688次閱讀
    ?為什么<b class='flag-5'>GPU</b><b class='flag-5'>性能</b>效率比峰值<b class='flag-5'>性能</b>更關(guān)鍵

    測(cè)量儀器的有哪些工作條件?

    相互比較,需要規(guī)定使它們具有可比性的一致的工作條件。 測(cè)量儀器具有自身的基本計(jì)量性能技術(shù)指標(biāo),如準(zhǔn)確度等級(jí)和最大允許誤差。測(cè)量儀器的計(jì)量性能
    的頭像 發(fā)表于 03-04 17:28 ?1335次閱讀
    <b class='flag-5'>測(cè)量</b>儀器的有哪些<b class='flag-5'>工作</b>條件?

    充電樁負(fù)載測(cè)試技術(shù)

    充電樁負(fù)載測(cè)試技術(shù)是確保電動(dòng)汽車(chē)充電設(shè)施可靠性和安全性的關(guān)鍵環(huán)節(jié),以下是對(duì)這一技術(shù)的詳細(xì)闡述: 保障安全性能:模擬各種充電場(chǎng)景和故障情況,檢測(cè)充電樁在過(guò)壓、過(guò)流、欠壓、欠流、短路等異常狀態(tài)
    發(fā)表于 02-27 11:09

    GPU 性能原理拆解

    「迷思」是指經(jīng)由人們口口相傳,但又難以證明證偽的現(xiàn)象。由于GPU硬件實(shí)現(xiàn)、驅(qū)動(dòng)實(shí)現(xiàn)是一個(gè)黑盒,我們只能通過(guò)廠商提供的API、經(jīng)過(guò)抽象的架構(gòu)來(lái)了解并猜測(cè)其原理。因此坊間流傳著各種關(guān)于與GPU打交道
    的頭像 發(fā)表于 02-08 14:29 ?988次閱讀
    <b class='flag-5'>GPU</b> <b class='flag-5'>性能</b>原理拆解

    HPC工作負(fù)載管理的關(guān)鍵要素

    HPC工作負(fù)載管理是一個(gè)復(fù)雜而精細(xì)的過(guò)程,涉及資源分配、作業(yè)調(diào)度、性能監(jiān)控與優(yōu)化以及故障處理與恢復(fù)等多個(gè)關(guān)鍵要素。下面,AI部落小編帶您了解HPC工作
    的頭像 發(fā)表于 02-08 09:53 ?530次閱讀

    RNF-150-3/64-0-SP熱收縮套管現(xiàn)貨庫(kù)存Raychem瑞侃

    (0.58mm)恢復(fù)后壁厚:0.010英寸(0.25mm)收縮率:2:1性能優(yōu)勢(shì)操作溫度:-55°C~150°C收縮溫度:110°C耐磨:由改性氟聚合物制作而成,具有優(yōu)異的耐久性耐化學(xué)
    發(fā)表于 01-24 08:45

    Supermicro高性能服務(wù)器量產(chǎn)供貨,優(yōu)化多重工作負(fù)載

    應(yīng)對(duì)計(jì)算需求嚴(yán)苛的高性能工作負(fù)載而設(shè)計(jì)。無(wú)論是大規(guī)模AI應(yīng)用、集群規(guī)模的高性能計(jì)算,還是需要大量GPU支持的協(xié)作設(shè)計(jì)、媒體傳播等場(chǎng)景,這些服
    的頭像 發(fā)表于 01-21 11:00 ?748次閱讀

    《CST Studio Suite 2024 GPU加速計(jì)算指南》

    的各個(gè)方面,包括硬件支持、操作系統(tǒng)支持、許可證、GPU計(jì)算的啟用、NVIDIA和AMD GPU的詳細(xì)信息以及相關(guān)的使用指南和故障排除等內(nèi)容。 1. 硬件支持 - NVIDIA GPU
    發(fā)表于 12-16 14:25

    光伏逆變器負(fù)載何進(jìn)行負(fù)載測(cè)試和性能評(píng)估?

    :在超過(guò)額定負(fù)載的條件,對(duì)光伏逆變器的輸出電壓、電流、功率因數(shù)等參數(shù)進(jìn)行測(cè)量和記錄,檢查其是否能夠正常工作,以及長(zhǎng)時(shí)間過(guò)載時(shí)的性能穩(wěn)定性。
    發(fā)表于 12-12 09:44

    不同負(fù)載特性對(duì)電源濾波器性能有什么影響?

    電源濾波器在電子系統(tǒng)中至關(guān)重要,負(fù)載變化影響其性能,包括輸出電壓電流波動(dòng)、濾波效果及穩(wěn)定性。需根據(jù)負(fù)載特性選濾波器類(lèi)型并優(yōu)化,采用多種測(cè)試方法評(píng)估性能,確保在
    的頭像 發(fā)表于 12-10 16:24 ?867次閱讀
    不同<b class='flag-5'>負(fù)載</b>特性對(duì)電源濾波器<b class='flag-5'>性能</b>有什么影響?

    深度學(xué)習(xí)工作負(fù)載GPU與LPU的主要差異

    ,一個(gè)新的競(jìng)爭(zhēng)力量——LPU(Language Processing Unit,語(yǔ)言處理單元)已悄然登場(chǎng),LPU專(zhuān)注于解決自然語(yǔ)言處理(NLP)任務(wù)中的順序性問(wèn)題,是構(gòu)建AI應(yīng)用不可或缺的一環(huán)。 本文旨在探討深度學(xué)習(xí)工作負(fù)載GPU
    的頭像 發(fā)表于 12-09 11:01 ?3898次閱讀
    深度學(xué)習(xí)<b class='flag-5'>工作</b><b class='flag-5'>負(fù)載</b>中<b class='flag-5'>GPU</b>與LPU的主要差異

    燃料電池測(cè)試負(fù)載工作原理是什么?

    可以是純電阻負(fù)載,也可以是包含電容、電感等元件的復(fù)雜負(fù)載。負(fù)載的大小和性質(zhì)可以根據(jù)實(shí)際需求進(jìn)行調(diào)整。 監(jiān)測(cè)燃料電池性能:在測(cè)試負(fù)載的作用
    發(fā)表于 12-06 16:31