在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GPU加速 Node.js實現可視化和更高的速度

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-21 14:43 ? 次閱讀

NVIDIA GTC21 有大量精彩且引人入勝的內容,特別是在 RAPIDS 附近,因此很容易錯過我們的首次演示“ 使用 RAPIDS 加速 Node. js JavaScript 以實現可視化和更高的速度。 ”是的–我們正在通過 Node.js 項目將 GPU 加速數據科學的力量帶到 JavaScript Node.js 社區。

Node- RAPIDS 是 Node.js 中模塊化 RAPIDS 庫綁定的開源技術預覽,以及支持基于瀏覽器的高性能可視化的補充方法。

poYBAGJg_RGASsApAACskN4gI4E854.png

web viz 有什么問題?

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

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

至于 RAPIDS Viz 團隊 自從我們第一次證明概念 ,我們希望構建能夠通過瀏覽器與數億個數據點實時無縫交互的工具——我們終于找到了一種方法。

為什么選擇 Node 。 js

如果您不熟悉 Node.js ,它是一個基于 C / C ++的開源跨平臺運行時環境,在 web 瀏覽器之外執行 JavaScript 代碼。超過 100 萬 Node. js 下載量 per day 。 節點包管理器 ( NPM )是默認的 JavaScript 包管理器,微軟擁有它。 Node.js 用于 eBay 、 AliExpress 等在線市場的后端,并被 Netflix 、 PayPal 和 Groupon 等高流量網站使用。顯然,這是一個強大的框架。

pYYBAGJg_RKATPVpAAKTThE7u88229.png

圖 1 : XKCD Node 。 js 是一個通用連接器

Node. js 是一個連接器,它為我們提供了直接訪問硬件的 JavaScript ,從而簡化了 API 并能夠使用 NVIDIA CUDA.

. 通過創建節點 – RAPIDS 綁定,我們使一個龐大的開發人員社區能夠使用 GPU 加速,而無需學習新語言或在新環境中工作。我們還為同一社區提供高性能數據科學平臺: RAPIDS !

下面是一個基于 我們的基本筆記本 的節點 – RAPIDS 的片段,它顯示了一個小型正則表達式示例的 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('');
/* OUTPUT:
---------------------------
// 1.6GB .CSV
// GPU: Titan RTX
Cloud|Overcast time: 26.819ms
Cloud|Overcast matches: 1,896,354
Rain|T-Storm|Thunderstorm|Squalls|Drizzle time: 63.813ms
Rain|T-Storm|Thunderstorm|Squalls|Drizzle matches: 326,441
Snow time: 6.396ms
Snow matches: 68,101
Fog time: 6.997ms
Fog matches: 52,063
Ice|Hail|Freezing|Sleet time: 44.031ms
Ice|Hail|Freezing|Sleet matches: 4,698
Dust|Smoke|Sand time: 29.932ms
Dust|Smoke|Sand matches: 8,846
GPU time: 190.457ms
// CPU: AMD Ryzen Threadripper 1900X 8-Core (3.8GHZ)
Cloud|Overcast time: 244.493ms
Cloud|Overcast matches: 1,896,354
Rain|T-Storm|Thunderstorm|Squalls|Drizzle time: 192.591ms
Rain|T-Storm|Thunderstorm|Squalls|Drizzle matches: 326,441
Snow time: 206.071ms
Snow matches: 68,101
Fog time: 204.61ms
Fog matches: 52,063
Ice|Hail|Freezing|Sleet time: 214.325ms
Ice|Hail|Freezing|Sleet matches: 4,698
Dust|Smoke|Sand time: 164.633ms
Dust|Smoke|Sand matches: 8,846
CPU time: 1.230s
---------------------------
// GPU is 6.45x faster than CPU
*/

節點 – RAPIDS :計為構建塊

poYBAGJg_ROAJDYzAADfZRoxj_4417.png

圖 2 : Node- RAPIDS 模塊概述。

與節點項目類似,節點 – RAPIDS 設計為模塊化。我們的目標不是構建交鑰匙 web 應用程序,而是創建一個 功能清單 ,以支持或加速各種各樣的用例和管道。前面是當前和計劃節點的概述 – RAPIDS 模塊按一般類別分組。 節點 – RAPIDS 應用程序可以根據需要使用任意數量的模塊。

為了減少起步的困難,我們還構建了一個 演示目錄 ,它可以作為通用應用程序的模板。隨著我們開發更多綁定,我們將創建更多演示來展示它們的功能。

pYYBAGJg_ROAAVhUAABusW_eiSQ990.png

圖 3 :交叉過濾器應用程序的示例。

前面是使用 RAPIDS cuDF 和 RAPIDS cuSpatial 庫的地理空間交叉過濾儀表板應用程序的理想堆棧。我們有一個使用 Deck.gl 的簡單演示,您可以使用我們的 video 進行預覽,并在 Github 上探索 演示代碼 。

poYBAGJg_RSAOksjAABZHz0hjxA642.png

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

前面的最后一個示例是一個僅服務器端的 ETL 管道,沒有任何可視化。我們有一個使用 cuDF 綁定和 互動筆記本 桌面應用程序的簡單 ETL 流程示例,您可以在 Notebook 上使用 video 進行預覽,并使用(獲取)交互。

下一步是什么?

雖然我們考慮這個項目已經有一段時間了,但我們才剛剛開始開發。 RAPIDS 是一個令人難以置信的框架,我們希望將它帶給更多的人和更多的應用程序— RAPIDS 正如我們所說的那樣。

近期下一步:

接下來的一些短期步驟是繼續構建核心 RAPIDS 綁定特性,您可以在我們的 當前綁定覆蓋率表 上查看這些特性。

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

最值得注意的是,我們計劃開始創建和發布模塊化 docker 容器,這將大大簡化當前的源代碼技術預覽安裝過程。

關于作者

Allan Enemark ,數據可視化設計, NVIDIA RAPIDS 數據可視化團隊負責人,致力于建立概念證明,開發工具,并與 RAPIDS 集成框架,通過 GPU 加速推進可視化分析領域。

Ajay Thorve 是 NVIDIA 的軟件工程師, RAPIDS 組織的可視化團隊的一部分。 Ajay 的背景是全棧開發和數據科學,主要興趣包括 JavaScript / TypeScript 和 Python 。目前, Ajay 在 RAPIDS viz 團隊的工作主要集中在為 cuXfilter 和 node- RAPIDS 項目做出貢獻。

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

Paul Taylor 是 NVIDIA RAPIDS 的高級工程師。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5025

    瀏覽量

    103268
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4754

    瀏覽量

    129074
  • 可視化
    +關注

    關注

    1

    文章

    1198

    瀏覽量

    20975
收藏 人收藏

    評論

    相關推薦

    什么是大屏數據可視化?特點有哪些?

    大屏數據可視化是指通過大屏幕展示大量數據和信息,以直觀、可視化的方式幫助用戶理解和分析數據。這種展示方式通常用于展示復雜的數據集、實時監控系統、企業管理儀表盤等。以下是關于 大屏數據可視化 的詳細
    的頭像 發表于 12-16 16:59 ?223次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現
    的頭像 發表于 11-29 10:00 ?377次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源數據管理

    Node.js小科普和Node.js安裝常見管理工具

    Node.js是一個JavaScript的運行環境,用來執行JavaScript代碼。 為什么會出現這么一個運行環境呢,從JavaScript研發初衷可以看出它是為了運行在瀏覽器中的,讓網頁交互更加
    的頭像 發表于 11-23 15:37 ?135次閱讀
    <b class='flag-5'>Node.js</b>小科普和<b class='flag-5'>Node.js</b>安裝常見管理工具

    Node-Red可視化編程:簡化開發的創新之選

    Node-Red 是構建物聯網 (IOT Internet of Things) 應用程序的一個強大工具,其重點是簡化代碼塊的“連接 ” 以執行任務。它使用可視化編程方法,允許開發人員將預定義的代碼塊 (稱為“節點 ”,Node
    的頭像 發表于 09-21 10:37 ?340次閱讀
    <b class='flag-5'>Node</b>-Red<b class='flag-5'>可視化</b>編程:簡化開發的創新之選

    工程師必備!Node.js和常見管理工具介紹(附操作演示)

    語言及其相關生態中的一些基礎而關鍵的概念,以及它們是如何在互聯網歷史浪潮中產生的。一JavaScript與Node.js1JavaScriptJavaScript,即JS
    的頭像 發表于 08-30 12:34 ?325次閱讀
    工程師必備!<b class='flag-5'>Node.js</b>和常見管理工具介紹(附操作演示)

    陀螺儀LSM6DSOW開發(2)----上報匿名上位機實現可視化

    本文檔詳細介紹了如何使用匿名助手的上位機實現加速度計和陀螺儀數據的可視化顯示。內容涵蓋了加速度計和陀螺儀的工作原理、上位機通信協議、數據處理流程以及具體的代碼
    的頭像 發表于 08-05 09:52 ?1509次閱讀
    陀螺儀LSM6DSOW開發(2)----上報匿名上位機<b class='flag-5'>實現</b><b class='flag-5'>可視化</b>

    大屏數據可視化 開源

    可以使信息一目了然,還能幫助用戶深入分析數據,發現潛在的規律和洞察。以下是古河云科技實現大屏數據可視化的關鍵步驟。 1.確定需求和目標 確定大屏數據可視化的具體需求和目標,包括展示內容、受眾群體、交互方式等。 2.數據收集
    的頭像 發表于 06-27 16:06 ?431次閱讀
    大屏數據<b class='flag-5'>可視化</b> 開源

    如何實現園區大屏可視化

    孿生可視化 構建平臺利用Web三維可視化技術對現實場景進行仿真,實現園區級業務場景 的可視化呈現,助力企業快速完成項目的實施。實現園區場景立
    的頭像 發表于 06-19 15:39 ?445次閱讀
    如何<b class='flag-5'>實現</b>園區大屏<b class='flag-5'>可視化</b>?

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據源管理、數據處理、視覺編碼、用戶界面與交互設計等。
    的頭像 發表于 06-04 15:02 ?640次閱讀
    智慧大屏是如何<b class='flag-5'>實現</b>數據<b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以便用戶能夠直觀、清晰地理解數據背后的含義和關聯。在信息化時代,數據已經成為企業決策和運營的重要依托,而
    的頭像 發表于 06-03 17:56 ?703次閱讀

    工廠車間可視化讓生產更高效管理更智能

    隨著工業4.0時代的來臨,智能制造、工業互聯網等概念逐漸深入人心。作為實現智能制造的重要手段之一,工廠車間可視化正受到越來越多的關注。那什么是工廠車間可視化?它又能為我們的生產和管理帶來哪些變革呢?
    的頭像 發表于 05-14 14:39 ?453次閱讀
    工廠車間<b class='flag-5'>可視化</b>讓生產<b class='flag-5'>更高</b>效管理更智能

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發表于 04-24 18:32 ?2次下載

    態勢數據可視化技術有哪些

    確,計算方法不實用,可視化效果不直觀等技術問題,設計并實現了基于地理信息系統,網絡拓撲圖,攻擊路徑等的安全態勢可視化分析系統方法, 通過可視化技術將安全態勢數據以多視圖,多角度,多層次
    的頭像 發表于 04-22 15:17 ?421次閱讀

    物聯網可視化監控大屏如何實現?有什么功能?

    在物聯網飛速發展的時代,可視化監控大屏成為了眾多企業和機構實現智能管理和監控的重要工具。它將各種各樣設備的運行狀態和數據以圖形、圖表、動畫等形式展示在大屏或其他移動設備上,使得用戶能夠直觀地了解
    的頭像 發表于 04-11 09:25 ?914次閱讀

    迎接數智時代:數字經濟引領可視化轉型

    數字經濟和數字轉型正推動企業進行變革,可視化和數智化成為關鍵驅動力。NFC技術為企業提供了更便捷、更安全的數據傳輸途徑,加速數字轉型。企業應打造
    的頭像 發表于 01-15 17:59 ?556次閱讀
    迎接數智時代:數字經濟引領<b class='flag-5'>可視化</b>轉型
    主站蜘蛛池模板: 色网站在线| 色综合久久中文字幕网| 91夫妻视频| h视频在线播放| 一区二区影视| 美女扒开尿口给男人爽免费视频| 夜夜爱夜夜爽| 天堂网在线资源| 国产高清一区二区三区| 福利片第一页| 在线免费看| 免费看美女禁处爆涌视频| 国产98在线传媒在线视频| 日韩a毛片免费全部播放完整| 啪啪免费观看| 男操女视频在线观看| 爽好舒服老师快点| 一级毛片在线看在线播放| 四虎影视免费| 欧美feer| 国产高清色视频免费看的网址 | 色吧首页dvd| 亚洲欧美一区二区三区四区| 国产在线播放一区| 欧美 ed2k| 午夜快播| 久在操| 黄色在线网| 欲色视频| 日本一区二区三区在线 视频观看免费| 欧美性色综合网| 99香蕉精品视频在线观看| videos另类重口tv| 午夜三级网| 天堂网最新| 骚黄视频| 国产亚洲人成a在线v网站| 韩国三级理论在线看中文字幕| 四虎精品久久久久影院| 青草悠悠视频在线观看| 国产成在线人视频免费视频|