<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類

      當(dāng)前位置: 首頁(yè) > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器

      類型分類:
      科普知識(shí)
      數(shù)據(jù)分類:
      FFC連接器

      GPU加速 Node.js實(shí)現(xiàn)可視化和更高的速度

      發(fā)布日期:2022-04-22 點(diǎn)擊率:38

      NVIDIA GTC21 有大量精彩且引人入勝的內(nèi)容,特別是在 RAPIDS 附近,因此很容易錯(cuò)過(guò)我們的首次演示“ 使用 RAPIDS 加速 Node. js Javascript 以實(shí)現(xiàn)可視化和更高的速度。 ”是的–我們正在通過(guò) Node.js 項(xiàng)目將 GPU 加速數(shù)據(jù)科學(xué)的力量帶到 Javascript Node.js 社區(qū)。

      Node- RAPIDS 是 Node.js 中模塊化 RAPIDS 庫(kù)綁定的開(kāi)源技術(shù)預(yù)覽,以及支持基于瀏覽器的高性能可視化的補(bǔ)充方法。


      poYBAGJg_RGASsApAACskN4gI4E854.png

      web viz 有什么問(wèn)題?

      大約十年前 是圍繞基于 web 的數(shù)據(jù)可視化的迷你復(fù)興,它展示了 D3 等高度交互、易于共享和使用的工具的好處。雖然性能不如 C / C ++或 Python 框架,但由于 Javascript 的可訪問(wèn)性,它們的受歡迎程度開(kāi)始上升。毫不奇怪,它通常被列為 最流行的開(kāi)發(fā)人員語(yǔ)言 ,排在 Python 或 Java 之前,現(xiàn)在有了完整的可視化和數(shù)據(jù)工具目錄。

      然而,這個(gè)龐大的 Javascript 開(kāi)發(fā)社區(qū)由于缺乏首選語(yǔ)言中的一流加速數(shù)據(jù)工具而受到阻礙。當(dāng)分析與數(shù)據(jù)源、科學(xué)和可視化盡可能接近時(shí),分析是最有效的。要使用 Javascript 完全訪問(wèn) GPU 硬件(超越 webGL 限制和黑客),需要精通多種語(yǔ)言來(lái)設(shè)置復(fù)雜的中間件管道或使用 Plotly Dash 等非 js 框架。因此,數(shù)據(jù)工程師、數(shù)據(jù)科學(xué)家、可視化專家和前端開(kāi)發(fā)人員往往被孤立起來(lái),甚至在組織內(nèi)部也是如此。這是有害的,因?yàn)閿?shù)據(jù)可視化是這些群體之間交流的理想媒介。

      至于 RAPIDS Viz 團(tuán)隊(duì) 自從我們第一次證明概念 ,我們希望構(gòu)建能夠通過(guò)瀏覽器與數(shù)億個(gè)數(shù)據(jù)點(diǎn)實(shí)時(shí)無(wú)縫交互的工具——我們終于找到了一種方法。

      為什么選擇 Node 。 js

      如果您不熟悉 Node.js ,它是一個(gè)基于 C / C ++的開(kāi)源跨平臺(tái)運(yùn)行時(shí)環(huán)境,在 web 瀏覽器之外執(zhí)行 Javascript 代碼。超過(guò) 100 萬(wàn) Node. js 下載量 per day 。 節(jié)點(diǎn)包管理器 ( NPM )是默認(rèn)的 Javascript 包管理器,微軟擁有它。 Node.js 用于 eBay 、 AliExpress 等在線市場(chǎng)的后端,并被 Netflix 、 PayPal 和 Groupon 等高流量網(wǎng)站使用。顯然,這是一個(gè)強(qiáng)大的框架。

      pYYBAGJg_RKATPVpAAKTThE7u88229.png

      圖 1 : XKCD Node 。 js 是一個(gè)通用連接器

      Node. js 是一個(gè)連接器,它為我們提供了直接訪問(wèn)硬件的 Javascript ,從而簡(jiǎn)化了 API 并能夠使用 NVIDIA CUDA.

      . 通過(guò)創(chuàng)建節(jié)點(diǎn) – RAPIDS 綁定,我們使一個(gè)龐大的開(kāi)發(fā)人員社區(qū)能夠使用 GPU 加速,而無(wú)需學(xué)習(xí)新語(yǔ)言或在新環(huán)境中工作。我們還為同一社區(qū)提供高性能數(shù)據(jù)科學(xué)平臺(tái): RAPIDS !

      下面是一個(gè)基于 我們的基本筆記本 的節(jié)點(diǎn) – RAPIDS 的片段,它顯示了一個(gè)小型正則表達(dá)式示例的 6x 加速:


      // Using https://github.com/rapidsai/node-rapids/



      const cudf = require('@rapidsai/cudf');



      const regexps = [

      /Cloud|Overcast/,

      /Rain|T-Storm|Thunderstorm|Squalls|Drizzle/,

      /Snow/,

      /Fog/,

      /Ice|Hail|Freezing|Sleet/,

      /Dust|Smoke|Sand/,

      ];

      ?

      console.log('');

      ?

      const weather_condition_gpu = cudf.Dataframe.readCSV({

      header: 0,

      sourceType: 'files',

      sources: [`${__dirname}/US_Accidents_Dec20.csv`],

      dataTypes: {

      id: 'str', source: 'str', tmc: 'float64', severity: 'int32', start_time: 'str', end_time: 'str',

      start_lat: 'float64', start_lng: 'float64', end_lat: 'float64', end_lng: 'float64',

      distance: 'float64', description: 'str', number: 'int32', street: 'str', side: 'str',

      city: 'str', county: 'str', state: 'str', zipcode: 'str', country: 'str', timezone: 'str', airport_code: 'str',

      weather_timestamp: 'str', temperature: 'float64', wind_chill: 'float64', humidity: 'float64', pressure: 'float64',

      visibility: 'float64', wind_direction: 'str', wind_speed: 'float64', precipitation: 'float64', weather_condition: 'str',

      amenity: 'bool', bump: 'bool', crossing: 'bool', give_way: 'bool', junction: 'bool', no_exit: 'bool', railway: 'bool',

      roundabout: 'bool', station: 'bool', stop: 'bool', traffic_calming: 'bool', traffic_signal: 'bool', turning_loop: 'bool',

      sunrise_sunset: 'str', civil_twilight: 'str', nautical_twighlight: 'str', astronomical_twighlight: 'str'

      },

      }).get('weather_condition');

      ?

      console.time(`GPU time`);

      ?

      regexps.forEach((regexp) => {

      console.time(`${regexp.source} time`);

      const matches = weather_condition_gpu.containsRe(regexp.source).sum();

      console.timeEnd(`${regexp.source} time`);

      console.log(`${regexp.source} matches: ${matches.toLocaleString()}`);

      });

      ?

      console.timeEnd(`GPU time`);

      ?

      console.log('');

      ?

      const weather_condition_cpu = (() => {

      const categorical = weather_condition_gpu.cast(new cudf.Categorical(new cudf.Utf8String));

      const categories = [...categorical.categories];

      const codes = [...categorical.codes];

      return codes.map((i) => categories[i]);

      })();

      ?

      console.time(`CPU time`);

      ?

      regexps.forEach((regexp) => {

      console.time(`${regexp.source} time`);

      const matches = weather_condition_cpu.reduce((matches, weather_condition) => {

      return matches + (regexp.exec(weather_condition) || []).length;

      }, 0);

      console.timeEnd(`${regexp.source} time`);

      console.log(`${regexp.source} matches: ${matches.toLocaleString()}`);

      });

      ?

      console.timeEnd(`CPU time`);

      ?

      console.log('');



      節(jié)點(diǎn) – RAPIDS :計(jì)為構(gòu)建塊

      poYBAGJg_ROAJDYzAADfZRoxj_4417.png

      圖 2 : Node- RAPIDS 模塊概述。

      與節(jié)點(diǎn)項(xiàng)目類似,節(jié)點(diǎn) – RAPIDS 設(shè)計(jì)為模塊化。我們的目標(biāo)不是構(gòu)建交鑰匙 web 應(yīng)用程序,而是創(chuàng)建一個(gè) 功能清單 ,以支持或加速各種各樣的用例和管道。前面是當(dāng)前和計(jì)劃節(jié)點(diǎn)的概述 – RAPIDS 模塊按一般類別分組。 節(jié)點(diǎn) – RAPIDS 應(yīng)用程序可以根據(jù)需要使用任意數(shù)量的模塊。

      為了減少起步的困難,我們還構(gòu)建了一個(gè) 演示目錄 ,它可以作為通用應(yīng)用程序的模板。隨著我們開(kāi)發(fā)更多綁定,我們將創(chuàng)建更多演示來(lái)展示它們的功能。

      pYYBAGJg_ROAAVhUAABusW_eiSQ990.png

      圖 3 :交叉過(guò)濾器應(yīng)用程序的示例。

      前面是使用 RAPIDS cuDF 和 RAPIDS cuSpatial 庫(kù)的地理空間交叉過(guò)濾儀表板應(yīng)用程序的理想堆棧。我們有一個(gè)使用 Deck.gl 的簡(jiǎn)單演示,您可以使用我們的 video 進(jìn)行預(yù)覽,并在 Github 上探索 演示代碼 。

      poYBAGJg_RSAOksjAABZHz0hjxA642.png

      圖 4 :流式 ETL 流程的示例。

      前面的最后一個(gè)示例是一個(gè)僅服務(wù)器端的 ETL 管道,沒(méi)有任何可視化。我們有一個(gè)使用 cuDF 綁定和 互動(dòng)筆記本 桌面應(yīng)用程序的簡(jiǎn)單 ETL 流程示例,您可以在 Notebook 上使用 video 進(jìn)行預(yù)覽,并使用(獲取)交互。

      下一步是什么?

      雖然我們考慮這個(gè)項(xiàng)目已經(jīng)有一段時(shí)間了,但我們才剛剛開(kāi)始開(kāi)發(fā)。 RAPIDS 是一個(gè)令人難以置信的框架,我們希望將它帶給更多的人和更多的應(yīng)用程序— RAPIDS 正如我們所說(shuō)的那樣。

      近期下一步:

      接下來(lái)的一些短期步驟是繼續(xù)構(gòu)建核心 RAPIDS 綁定特性,您可以在我們的 當(dāng)前綁定覆蓋率表 上查看這些特性。

      如果直接從您的 web 應(yīng)用程序中使用 GPU 加速 SQL 查詢的想法聽(tīng)起來(lái)很有趣(對(duì)我們來(lái)說(shuō)的確如此),那么我們也希望盡快開(kāi)始使用一些 blazingSQL 綁定。

      最值得注意的是,我們計(jì)劃開(kāi)始創(chuàng)建和發(fā)布模塊化 docker 容器,這將大大簡(jiǎn)化當(dāng)前的源代碼技術(shù)預(yù)覽安裝過(guò)程。

      關(guān)于作者

      Allan Enemark ,數(shù)據(jù)可視化設(shè)計(jì), NVIDIA RAPIDS 數(shù)據(jù)可視化團(tuán)隊(duì)負(fù)責(zé)人,致力于建立概念證明,開(kāi)發(fā)工具,并與 RAPIDS 集成框架,通過(guò) GPU 加速推進(jìn)可視化分析領(lǐng)域。

      Ajay Thorve 是 NVIDIA 的軟件工程師, RAPIDS 組織的可視化團(tuán)隊(duì)的一部分。 Ajay 的背景是全棧開(kāi)發(fā)和數(shù)據(jù)科學(xué),主要興趣包括 Javascript / Typescript 和 Python 。目前, Ajay 在 RAPIDS viz 團(tuán)隊(duì)的工作主要集中在為 cuXfilter 和 node- RAPIDS 項(xiàng)目做出貢獻(xiàn)。

      Bryan Van de Ven 是 NVIDIA 的高級(jí)系統(tǒng)軟件工程師,負(fù)責(zé) RAPIDS 的前端和可視化工具。此前,他曾在微軟和 Anaconda 工作,在那里他創(chuàng)建了 conda 軟件包管理器,并共同創(chuàng)建了 Bokeh 可視化庫(kù)。布萊恩獲得了 UT 奧斯汀大學(xué)的計(jì)算機(jī)科學(xué)和數(shù)學(xué)學(xué)士學(xué)位,以及加州大學(xué)洛杉磯分校的物理學(xué)碩士學(xué)位。

      Paul Taylor 是 NVIDIA RAPIDS 的高級(jí)工程師。

      審核編輯:郭婷

       

      下一篇: PLC、DCS、FCS三大控

      上一篇: 如何借助高均勻性的 S

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 亚洲综合精品一二三区在线| 亚洲国产成人五月综合网| 六月婷婷激情综合| 亚洲精品综合久久| 精品无码综合一区| 久久婷婷五月综合国产尤物app| 久久精品国产亚洲综合色| 婷婷五月综合丁香在线| 青草久久精品亚洲综合专区| 久久婷婷色综合一区二区| 亚洲综合无码一区二区| 青青草原综合久久大伊人导航| 丁香六月婷婷综合| 一本大道久久a久久精品综合| 色综合天天综合给合国产| 伊人久久综合成人网| 久久综合久久久久88| 色欲色香天天天综合网站免费| 色婷婷综合久久久久中文字幕| 亚洲欧洲日产国产综合网| 一本久久a久久精品vr综合| 狠狠综合亚洲综合亚洲色| 亚洲国产精品综合福利专区| 伊人不卡久久大香线蕉综合影院| 精品无码综合一区二区三区| 亚洲国产成人综合| 伊人久久青草青青综合| 一本大道久久a久久综合| 国产成人综合久久精品免费| 色综合久久久久久久| 国产成人亚洲综合无| 国产精品亚洲综合| 亚洲精品第一国产综合精品99 | 色综合视频一区二区三区44| 亚洲色欲久久久综合网| 亚洲综合色区在线观看| 色爱区综合激情五月综合激情| 亚洲五月激情综合图片区| 激情五月婷婷综合| 色综合久久综合中文小说| 久久综合日本熟妇|