哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

并行計(jì)算平臺(tái)和NVIDIA編程模型CUDA的更簡(jiǎn)單介紹

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:Mark Harris ? 2022-04-11 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章是對(duì) CUDA 的一個(gè)超級(jí)簡(jiǎn)單的介紹,這是一個(gè)流行的并行計(jì)算平臺(tái)和 NVIDIA 的編程模型。我在 2013 年給 CUDA 寫了一篇前一篇 “簡(jiǎn)單介紹” ,這幾年來非常流行。但是 CUDA 編程變得越來越簡(jiǎn)單, GPUs 也變得更快了,所以是時(shí)候更新(甚至更容易)介紹了。

CUDA C ++只是使用 CUDA 創(chuàng)建大規(guī)模并行應(yīng)用程序的一種方式。它讓您使用強(qiáng)大的 C ++編程語言來開發(fā)由數(shù)千個(gè)并行線程加速的高性能算法 GPUs 。許多開發(fā)人員已經(jīng)用這種方式加速了他們對(duì)計(jì)算和帶寬需求巨大的應(yīng)用程序,包括支持人工智能正在進(jìn)行的革命的庫和框架 深度學(xué)習(xí) 。

所以,您已經(jīng)聽說了 CUDA ,您有興趣學(xué)習(xí)如何在自己的應(yīng)用程序中使用它。如果你是 C 或 C ++程序員,這個(gè)博客應(yīng)該給你一個(gè)好的開始。接下來,您需要一臺(tái)具有 CUDA – 功能的 GPU 計(jì)算機(jī)( Windows 、 Mac 或 Linux ,以及任何 NVIDIA GPU 都可以),或者需要一個(gè)具有 GPUs 的云實(shí)例( AWS 、 Azure 、 IBM 軟層和其他云服務(wù)提供商都有)。您還需要安裝免費(fèi)的 CUDA 工具箱 。

我們開始吧!

從簡(jiǎn)單開始

我們將從一個(gè)簡(jiǎn)單的 C ++程序開始,它添加兩個(gè)數(shù)組的元素,每個(gè)元素有一百萬個(gè)元素。

#include 
#include  // function to add the elements of two arrays
void add(int n, float *x, float *y)
{ for (int i = 0; i < n; i++) y[i] = x[i] + y[i];
} int main(void)
{ int N = 1<<20; // 1M elements float *x = new float[N]; float *y = new float[N]; // initialize x and y arrays on the host for (int i = 0; i < N; i++) { x[i] = 1.0f; y[i] = 2.0f; } // Run kernel on 1M elements on the CPU add(N, x, y); // Check for errors (all values should be 3.0f) float maxError = 0.0f; for (int i = 0; i < N; i++) maxError = fmax(maxError, fabs(y[i]-3.0f)); std::cout << "Max error: " << maxError << std::endl; // Free memory delete [] x; delete [] y; return 0;
}

首先,編譯并運(yùn)行這個(gè) C ++程序。將代碼放在一個(gè)文件中,并將其保存為add.cpp,然后用 C ++編譯器編譯它。我在 Mac 電腦上,所以我用的是clang++,但你可以在 Linux 上使用g++,或者在 Windows 上使用 MSVC 。

> clang++ add.cpp -o add

然后運(yùn)行它:

> ./add Max error: 0.000000

(在 Windows 上,您可能需要命名可執(zhí)行文件添加. exe 并使用.dd運(yùn)行它。)

正如預(yù)期的那樣,它打印出求和中沒有錯(cuò)誤,然后退出?,F(xiàn)在我想讓這個(gè)計(jì)算在 GPU 的多個(gè)核心上運(yùn)行(并行)。其實(shí)邁出第一步很容易。

首先,我只需要將我們的add函數(shù)轉(zhuǎn)換成 GPU 可以運(yùn)行的函數(shù),在 CUDA 中稱為內(nèi)核。要做到這一點(diǎn),我所要做的就是把說明符__global__添加到函數(shù)中,它告訴 CUDA C ++編譯器,這是一個(gè)在 GPU 上運(yùn)行的函數(shù),可以從 CPU 代碼調(diào)用。

// CUDA Kernel function to add the elements of two arrays on the GPU
__global__
void add(int n, float *x, float *y)
{ for (int i = 0; i < n; i++) y[i] = x[i] + y[i];
}

這些__global__函數(shù)被稱為果仁,在 GPU 上運(yùn)行的代碼通常稱為設(shè)備代碼,而在 CPU 上運(yùn)行的代碼是主機(jī)代碼。

CUDA 中的內(nèi)存分配

為了在 GPU 上計(jì)算,我需要分配 GPU 可訪問的內(nèi)存, CUDA 中的統(tǒng)一存儲(chǔ)器通過提供一個(gè)系統(tǒng)中所有 GPUs 和 CPU 都可以訪問的內(nèi)存空間,這使得這一點(diǎn)變得簡(jiǎn)單。要在統(tǒng)一內(nèi)存中分配數(shù)據(jù),請(qǐng)調(diào)用cudaMallocManaged(),它返回一個(gè)指針,您可以從主機(jī)( CPU )代碼或設(shè)備( GPU )代碼訪問該指針。要釋放數(shù)據(jù),只需將指針傳遞到cudaFree()。

我只需要將上面代碼中對(duì)new的調(diào)用替換為對(duì)cudaMallocManaged()的調(diào)用,并將對(duì)delete []的調(diào)用替換為對(duì)cudaFree.的調(diào)用

 // Allocate Unified Memory -- accessible from CPU or GPU float *x, *y; cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); ... // Free memory cudaFree(x); cudaFree(y);

最后,我需要發(fā)射內(nèi)核,它在add()上調(diào)用它。 CUDA 內(nèi)核啟動(dòng)是使用三角括號(hào)語法指定的。我只需要在參數(shù)列表之前將它添加到對(duì) CUDA 的調(diào)用中。

add<<<1, 1>>>(N, x, y);

容易的!我很快將詳細(xì)介紹尖括號(hào)內(nèi)的內(nèi)容;現(xiàn)在您只需要知道這行代碼啟動(dòng)了一個(gè) GPU 線程來運(yùn)行add()。

還有一件事:我需要 CPU 等到內(nèi)核完成后再訪問結(jié)果(因?yàn)?CUDA 內(nèi)核啟動(dòng)不會(huì)阻塞調(diào)用的 CPU 線程)。為此,我只需在對(duì) CPU 進(jìn)行最后的錯(cuò)誤檢查之前調(diào)用cudaDeviceSynchronize()。

以下是完整的代碼:

#include 
#include 
// Kernel function to add the elements of two arrays
__global__
void add(int n, float *x, float *y)
{ for (int i = 0; i < n; i++) y[i] = x[i] + y[i];
} int main(void)
{ int N = 1<<20; float *x, *y; // Allocate Unified Memory – accessible from CPU or GPU cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); // initialize x and y arrays on the host for (int i = 0; i < N; i++) { x[i] = 1.0f; y[i] = 2.0f; } // Run kernel on 1M elements on the GPU add<<<1, 1>>>(N, x, y); // Wait for GPU to finish before accessing on host cudaDeviceSynchronize(); // Check for errors (all values should be 3.0f) float maxError = 0.0f; for (int i = 0; i < N; i++) maxError = fmax(maxError, fabs(y[i]-3.0f)); std::cout << "Max error: " << maxError << std::endl; // Free memory cudaFree(x); cudaFree(y); return 0;
}

CUDA 文件具有文件擴(kuò)展名;.cu。所以把代碼保存在一個(gè)名為

> nvcc add.cu -o add_cuda
> ./add_cuda
Max error: 0.000000

這只是第一步,因?yàn)檎缢鶎懙?,這個(gè)內(nèi)核只適用于一個(gè)線程,因?yàn)檫\(yùn)行它的每個(gè)線程都將在整個(gè)數(shù)組上執(zhí)行 add 。此外,還有一個(gè)競(jìng)爭(zhēng)條件,因?yàn)槎鄠€(gè)并行線程讀寫相同的位置。

注意:在 Windows 上,您需要確保在 Microsoft Visual Studio 中項(xiàng)目的配置屬性中將“平臺(tái)”設(shè)置為 x64 。

介紹一下!

我認(rèn)為找出運(yùn)行內(nèi)核需要多長(zhǎng)時(shí)間的最簡(jiǎn)單的方法是用nvprof運(yùn)行它,這是一個(gè)帶有 CUDA 工具箱的命令行 GPU 分析器。只需在命令行中鍵入nvprof ./add_cuda

$ nvprof ./add_cuda
==3355== NVPROF is profiling process 3355, command: ./add_cuda
Max error: 0
==3355== Profiling application: ./add_cuda
==3355== Profiling result:
Time(%) Time Calls Avg Min Max Name
100.00% 463.25ms 1 463.25ms 463.25ms 463.25ms add(int, float*, float*)
...

上面是來自nvprof的截?cái)噍敵?,顯示了對(duì)add的單個(gè)調(diào)用。在 NVIDIA Tesla K80 加速器上需要大約半秒鐘的時(shí)間,而在我 3 歲的 Macbook Pro 上使用 NVIDIA GeForce GT 740M 大約需要半秒鐘的時(shí)間。

讓我們用并行來加快速度。

把線撿起來

既然你已經(jīng)用一個(gè)線程運(yùn)行了一個(gè)內(nèi)核,那么如何使它并行?鍵是在 CUDA 的<<<1, 1>>>語法中。這稱為執(zhí)行配置,它告訴 CUDA 運(yùn)行時(shí)要使用多少并行線程來啟動(dòng) GPU 。這里有兩個(gè)參數(shù),但是讓我們從更改第二個(gè)參數(shù)開始:線程塊中的線程數(shù)。 CUDA GPUs 運(yùn)行內(nèi)核時(shí)使用的線程塊大小是 32 的倍數(shù),因此 256 個(gè)線程是一個(gè)合理的選擇。

add<<<1, 256>>>(N, x, y);

如果我只在這個(gè)修改下運(yùn)行代碼,它將為每個(gè)線程執(zhí)行一次計(jì)算,而不是將計(jì)算分散到并行線程上。為了正確地執(zhí)行它,我需要修改內(nèi)核。 CUDA C ++提供了關(guān)鍵字,這些內(nèi)核可以讓內(nèi)核獲得運(yùn)行線程的索引。具體來說,threadIdx.x包含其塊中當(dāng)前線程的索引,blockDim.x包含塊中的線程數(shù)。我只需修改循環(huán)以使用并行線程跨過數(shù)組。

__global__
void add(int n, float *x, float *y)
{ int index = threadIdx.x; int stride = blockDim.x; for (int i = index; i < n; i += stride) y[i] = x[i] + y[i];
}

add函數(shù)沒有太大變化。事實(shí)上,將index設(shè)置為 0 ,stride設(shè)置為 1 會(huì)使其在語義上與第一個(gè)版本相同。

將文件另存為add_block.cu,然后再次在nvprof中編譯并運(yùn)行。在后面的文章中,我將只顯示輸出中的相關(guān)行。

Time(%) Time Calls Avg Min Max Name
100.00% 2.7107ms 1 2.7107ms 2.7107ms 2.7107ms add(int, float*, float*)

這是一個(gè)很大的加速( 463 毫秒下降到 2 . 7 毫秒),但并不奇怪,因?yàn)槲覐?1 線程到 256 線程。 K80 比我的小 MacBookProGPU 快( 3 . 2 毫秒)。讓我們繼續(xù)取得更高的表現(xiàn)。

走出街區(qū)

CUDA GPUs 有許多并行處理器組合成流式多處理器或 SMs 。每個(gè) SM 可以運(yùn)行多個(gè)并發(fā)線程塊。例如,基于 Tesla 的 Tesla P100帕斯卡 GPU 體系結(jié)構(gòu)有 56 個(gè)短消息,每個(gè)短消息能夠支持多達(dá) 2048 個(gè)活動(dòng)線程。為了充分利用所有這些線程,我應(yīng)該用多個(gè)線程塊啟動(dòng)內(nèi)核。

現(xiàn)在您可能已經(jīng)猜到執(zhí)行配置的第一個(gè)參數(shù)指定了線程塊的數(shù)量。這些平行線程塊一起構(gòu)成了所謂的網(wǎng)格。因?yàn)槲矣?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);">N元素要處理,每個(gè)塊有 256 個(gè)線程,所以我只需要計(jì)算塊的數(shù)量就可以得到至少 N 個(gè)線程。我只需將N除以塊大?。ㄗ⒁庠?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);">N不是blockSize的倍數(shù)的情況下向上取整)。

int blockSize = 256;
int numBlocks = (N + blockSize - 1) / blockSize;
add<<<numBlocks, blockSize>>>(N, x, y);

我還需要更新內(nèi)核代碼來考慮線程塊的整個(gè)網(wǎng)格。threadIdx.x提供了包含網(wǎng)格中塊數(shù)的gridDim.x和包含網(wǎng)格中當(dāng)前線程塊索引的blockIdx.x。圖 1 說明了使用 CUDA 、gridDim.xthreadIdx.x在 CUDA 中索引數(shù)組(一維)的方法。其思想是,每個(gè)線程通過計(jì)算到其塊開頭的偏移量(塊索引乘以塊大?。?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);">blockIdx.x * blockDim.x),并將線程的索引添加到塊內(nèi)(threadIdx.x)。代碼blockIdx.x * blockDim.x + threadIdx.x是慣用的 CUDA 。

__global__
void add(int n, float *x, float *y)
{ int index = blockIdx.x * blockDim.x + threadIdx.x; int stride = blockDim.x * gridDim.x; for (int i = index; i < n; i += stride) y[i] = x[i] + y[i];
}

更新的內(nèi)核還將stride設(shè)置為網(wǎng)格中的線程總數(shù)(blockDim.x * gridDim.x)。 CUDA 內(nèi)核中的這種類型的循環(huán)通常稱為柵格步幅循環(huán)。

將文件另存為&[EZX63 ;&[編譯并在&[EZX37 ;&]中運(yùn)行它]

Time(%) Time Calls Avg Min Max Name
100.00% 94.015us 1 94.015us 94.015us 94.015us add(int, float*, float*)

這是另一個(gè) 28 倍的加速,從運(yùn)行多個(gè)街區(qū)的所有短信 K80 !我們?cè)?K80 上只使用了 2 個(gè) GPUs 中的一個(gè),但是每個(gè) GPU 都有 13 條短信。注意,我筆記本電腦中的 GeForce 有 2 條(較弱的)短信,運(yùn)行內(nèi)核需要 680us 。

總結(jié)

下面是三個(gè)版本的add()內(nèi)核在 Tesla K80 和 GeForce GT 750M 上的性能分析。

如您所見,我們可以在 GPUs 上實(shí)現(xiàn)非常高的帶寬。這篇文章中的計(jì)算是非常有帶寬限制的,但是 GPUs 也擅長(zhǎng)于密集矩陣線性代數(shù)深度學(xué)習(xí)、圖像和信號(hào)處理、物理模擬等大量計(jì)算限制的計(jì)算。

關(guān)于作者

Mark Harris 是 NVIDIA 杰出的工程師,致力于 RAPIDS 。 Mark 擁有超過 20 年的 GPUs 軟件開發(fā)經(jīng)驗(yàn),從圖形和游戲到基于物理的模擬,到并行算法和高性能計(jì)算。當(dāng)他還是北卡羅來納大學(xué)的博士生時(shí),他意識(shí)到了一種新生的趨勢(shì),并為此創(chuàng)造了一個(gè)名字: GPGPU (圖形處理單元上的通用計(jì)算)。

審核編輯:郭婷

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

    關(guān)注

    14

    文章

    5682

    瀏覽量

    110102
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5266

    瀏覽量

    136040
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7837

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    NVIDIA在GTC大會(huì)慶祝CUDA發(fā)明二十周年

    2006 年,一項(xiàng)大膽的并行計(jì)算構(gòu)想悄然啟程。如今,它已成為現(xiàn)代科學(xué)與 AI 發(fā)展的基礎(chǔ)脈動(dòng)。
    的頭像 發(fā)表于 04-07 15:02 ?348次閱讀

    尋找對(duì)RISCV眾核并行計(jì)算感興趣的伙伴、朋友

    一、我們?cè)赗ISCV眾核并行計(jì)算方案包括: 1、眾核芯片 自研RISCV CPU IP,和自研NOC IP(片上網(wǎng)絡(luò)),在單一芯片上利用NOC IP連接幾十/幾百/幾千個(gè)以上的CPU核,組成眾核芯片
    發(fā)表于 03-28 14:41

    尋找對(duì)RISCV眾核并行計(jì)算感興趣的伙伴

    一、我們?cè)赗ISCV眾核并行計(jì)算方案包括: 1、眾核芯片 自研RISCV CPU IP,和自研NOC IP(片上網(wǎng)絡(luò)),在單一芯片上利用NOC IP連接幾十/幾百/幾千個(gè)以上的CPU核,組成眾核芯片
    發(fā)表于 03-28 14:37

    NVIDIA cuDF和cuVS獲全球領(lǐng)先數(shù)據(jù)平臺(tái)采用

    企業(yè)每年產(chǎn)生數(shù)百 ZB (Zettabyte) 的數(shù)據(jù),并在爭(zhēng)相將這些信息轉(zhuǎn)化為洞察。NVIDIA cuDF 和 cuVS 作為基于 NVIDIA CUDA-X 構(gòu)建的加速數(shù)據(jù)庫,正在被各行業(yè)的數(shù)據(jù)
    的頭像 發(fā)表于 03-19 15:46 ?414次閱讀

    借助NVIDIA CUDA Tile IR后端推進(jìn)OpenAI Triton的GPU編程

    NVIDIA CUDA Tile 是基于 GPU 的編程模型,其設(shè)計(jì)目標(biāo)是為 NVIDIA Tensor Cores 提供可移植性,從而釋放
    的頭像 發(fā)表于 02-10 10:31 ?504次閱讀

    如何在NVIDIA CUDA Tile中編寫高性能矩陣乘法

    本博文是系列課程的一部分,旨在幫助開發(fā)者學(xué)習(xí) NVIDIA CUDA Tile 編程,掌握構(gòu)建高性能 GPU 內(nèi)核的方法,并以矩陣乘法作為核心示例。
    的頭像 發(fā)表于 01-22 16:43 ?5264次閱讀
    如何在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> Tile中編寫高性能矩陣乘法

    NVIDIA CUDA Tile的創(chuàng)新之處、工作原理以及使用方法

    NVIDIA CUDA 13.1 推出 NVIDIA CUDA Tile,這是自 2006 年 NVIDIA
    的頭像 發(fā)表于 12-24 10:17 ?625次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> Tile的創(chuàng)新之處、工作原理以及使用方法

    在Python中借助NVIDIA CUDA Tile簡(jiǎn)化GPU編程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 編程模式。它是自 CUDA 發(fā)明以來 GPU 編程最核心的更新之一。借
    的頭像 發(fā)表于 12-13 10:12 ?1392次閱讀
    在Python中借助<b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> Tile簡(jiǎn)化GPU<b class='flag-5'>編程</b>

    NVIDIA CUDA 13.1版本的新增功能與改進(jìn)

    NVIDIA CUDA 13.1 是自 CUDA 二十年前發(fā)明以來,規(guī)模最大、內(nèi)容最全面的一次更新。
    的頭像 發(fā)表于 12-13 10:08 ?2432次閱讀

    為啥 AI 計(jì)算速度這么驚人?—— 聊聊 GPU、內(nèi)存與并行計(jì)算

    提到AI,大家常說它“算得快”,其實(shí)是指AI能在眨眼間處理海量數(shù)據(jù)??伤鼮樯队羞@本事?答案就藏在“GPU+高速內(nèi)存+并行計(jì)算”這trio(組合)里。咱們可以把AI要處理的數(shù)據(jù),想象成一大堆“小任務(wù)
    的頭像 發(fā)表于 12-05 14:35 ?1082次閱讀
    為啥 AI <b class='flag-5'>計(jì)算</b>速度這么驚人?—— 聊聊 GPU、內(nèi)存與<b class='flag-5'>并行計(jì)算</b>

    一文看懂AI大模型并行訓(xùn)練方式(DP、PP、TP、EP)

    大家都知道,AI計(jì)算(尤其是模型訓(xùn)練和推理),主要以并行計(jì)算為主。AI計(jì)算中涉及到的很多具體算法(例如矩陣相乘、卷積、循環(huán)層、梯度運(yùn)算等),都需要基于成千上萬的GPU,以
    的頭像 發(fā)表于 11-28 08:33 ?2055次閱讀
    一文看懂AI大<b class='flag-5'>模型</b>的<b class='flag-5'>并行</b>訓(xùn)練方式(DP、PP、TP、EP)

    神經(jīng)網(wǎng)絡(luò)的并行計(jì)算與加速技術(shù)

    問題。因此,并行計(jì)算與加速技術(shù)在神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用中變得至關(guān)重要,它們能夠顯著提升神經(jīng)網(wǎng)絡(luò)的性能和效率,滿足實(shí)際應(yīng)用中對(duì)快速響應(yīng)和大規(guī)模數(shù)據(jù)處理的需求。神經(jīng)網(wǎng)絡(luò)并行
    的頭像 發(fā)表于 09-17 13:31 ?1280次閱讀
    神經(jīng)網(wǎng)絡(luò)的<b class='flag-5'>并行計(jì)算</b>與加速技術(shù)

    從自然仿真到智能調(diào)度——GPU并行計(jì)算的多場(chǎng)景突破

    的體系結(jié)構(gòu),成為科學(xué)仿真與智能調(diào)度的核心計(jì)算平臺(tái)。在自然現(xiàn)象模擬中,風(fēng)沙流、流體力學(xué)等問題往往涉及海量粒子間的相互作用,計(jì)算負(fù)擔(dān)極為沉重,而GPU的并行鄰居搜索與空間
    的頭像 發(fā)表于 09-03 10:32 ?986次閱讀
    從自然仿真到智能調(diào)度——GPU<b class='flag-5'>并行計(jì)算</b>的多場(chǎng)景突破

    Kintex UltraScale 純 FPGA 開發(fā)平臺(tái),釋放高速并行計(jì)算潛能,高性價(jià)比的 FPGA 解決方案

    璞致電子PZ-KU060-KFB開發(fā)板采用Xilinx Kintex UltraScale KU060芯片,提供高密度并行計(jì)算能力,配備4GB DDR4內(nèi)存、20對(duì)GTH高速收發(fā)器和多種擴(kuò)展接口
    的頭像 發(fā)表于 08-18 13:28 ?876次閱讀
    Kintex UltraScale 純 FPGA 開發(fā)<b class='flag-5'>平臺(tái)</b>,釋放高速<b class='flag-5'>并行計(jì)算</b>潛能,高性價(jià)比的 FPGA 解決方案

    邊緣AI廣泛應(yīng)用推動(dòng)并行計(jì)算崛起及創(chuàng)新GPU滲透率快速提升

    是時(shí)候重新教育整個(gè)生態(tài)了。邊緣AI的未來不屬于那些高度優(yōu)化但功能狹窄的芯片,而是屬于可編程的、可適配的并行計(jì)算平臺(tái),它們能與智能軟件共同成長(zhǎng)并擴(kuò)展。
    的頭像 發(fā)表于 06-11 14:57 ?748次閱讀
    丰城市| 卢氏县| 行唐县| 怀宁县| 固镇县| 通化市| 贡山| 韩城市| 富宁县| 云安县| 嘉祥县| 射阳县| 金平| 兴业县| 永定县| 探索| 兰州市| 天等县| 常熟市| 延安市| 沾化县| 金秀| 张家界市| 高州市| 阿拉善盟| 西乌| 桂阳县| 宁蒗| 南雄市| 定襄县| 中江县| 固安县| 五华县| 彭水| 邵武市| 和静县| 邹平县| 腾冲县| 土默特右旗| 绍兴县| 恩平市|