写点什么

NVIDIA 发布新的 C++ 数值计算库:支持 GPU 加速

  • 2023-11-15
    北京
  • 本文字数:843 字

    阅读完需:约 3 分钟

大小:385.53K时长:02:11
NVIDIA发布新的C++数值计算库:支持GPU加速

 MatX 是一个 C++ 库由 Nvidia 为其自有的 GPU 开发,,旨在使用高级语法在数值计算中实现接近本地性能,不遑多让于 Python 的 scipy 或 MATLAB。它的最新版本引入了许多新功能,包括可以将变换作为运算符,以及新的运算符,如上采样、下采样、pwelch 等等。

 

现在,可以在任何运算符表达式中使用变换,以使用运算符融合来进行延迟评估。运算符融合是 MatX 中的一个特殊功能,旨在提高性能,通过减少内存访问,从而避免内存访问成本相对寄存器访问昂贵数个数量级的问题。

 

旨在通过减少内存访问来提高性能,内存访问的成本可能比寄存器访问高出几个数量级。使用运算符融合,一个表达式不会立即计算,而是转换为表示该表达式的 C++ 类型,该类型将在需要其值时进行评估。换句话说,不是立即计算表达式的结果,比如:

 

(A = B * (cos(C) / D)).run();
复制代码

 

你可以将其值存储在一个中间表达式中:

 

auto op = (B * (cos(C) / D));
复制代码

 

将其与其他表达式组合,并在需要时进行延迟评估。这一特性是通过重载 C++ 运算符实现的。MatX 的最新版本将这一功能扩展到了变换中,例如在以下表达式中:

 

(A = B * fft(C)).run();
复制代码

 

编译器能够理解乘法运算符的右侧是 FFT 变换,而左侧是另一个表达式,可以在编译时与前者的结果进行融合

 

值得注意的是,将变换用作运算符的这种新语法与以前的变换使用方式存在一些不兼容。具体而言,以前你可能会写成matmul(C, A, B, stream),而现在应该使用(C = matmul(A,B)).run(stream)

 

MatX 0.6.0 引入的另一个新功能是新的多相通道化运算符,它可以将输入信号分成一组通道。例如,它可用于将高采样率的宽带信号转换为多个低采样率的窄带信号。

 

新的运算符包括 `upsample`,用于通过插入零来上采样信号;downsample,用于通过丢弃样本来下采样信号;pwelch,用于可视化信号的频谱,而无需进行预处理。

 

MatX 的最新版本拥有更多功能,此处无法详尽列出。如果你对完整细节感兴趣,不要错过官方发布说明。

 

原文链接:

https://www.infoq.com/news/2023/10/Nvidia-matx-cpp-numerical-lib/

2023-11-15 08:004750

评论

发布
暂无评论
发现更多内容

手把手 Golang 实现静态图像与视频流人脸识别

声网

音视频 人脸识别

DeFi去中心化平台源码开发|智能合约系统搭建

量化系统19942438797

Android开发:引入重复包报错Error:Execution failed for task ‘:app:transform...’解决方法

三掌柜

8月日更 8月

🏆「作者推荐」【JVM 性能调优】JVM分析与调优技巧分析(原理篇)

洛神灬殇

JVM JVm虚拟机 8月日更

前端之算法(一)

Augus

数据结构与算法 8月日更

从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer

Java~~~

Java spring 面试 微服务 JVM

MinIO Client 使用(一)

耳东@Erdong

Minio 8月日更 mc minio client

MySQL知识点整理

一个大红包

8月日更

写作 7 堂课——【6. 清单式写作】

LeifChen

清单 写作技巧 8月日更 检查清单

【设计模式】代理模式

Andy阿辉

C# 后端 设计模式 8月日更

用区块链加强知识产权保护

CECBC

【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述

编程三昧

面试 https 8月日更

新药开发瓶颈问题或将被打破,北鲲云超算平台开启药物研发“加速度”

北鲲云

区块链难懂?人民日报评论员讲给你听

CECBC

Ipfs靠谱吗?ipfs中国授权公司都有哪些?

分布式存储 区块链+ IPFS fil

ipfs矿机挖币哪家最好?ipfs矿机公司实力排行如何?

ipfs矿机挖币哪家最好 ipfs矿机公司实力排行如何

CSS 文档中定位指南:static、relative、absolute、fixed、sticky

devpoint

CSS 8月日更

从新手村出来,我在 Apache APISIX 社区发出了第一个 PR

API7.ai 技术团队

开源 后端 API网关 APISIX

网络攻防学习笔记 Day102

穿过生命散发芬芳

态势感知 网络攻防 8月日更

记一次PHP渗透测试实战教程

网络安全学海

php 网络安全 信息安全 渗透测试 安全漏洞

LeetCode题解:80. 删除有序数组中的重复项 II,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

融云CTO杨攀:把握核心技术,促进产学研用融合发展

融云 RongCloud

fil矿机怎么购买?fil矿机在哪买?

fil矿机怎么购买 fil矿机在哪买

企业不可忽视的三大关键时刻

石云升

管理经验 关键时刻 体验设计 8月日更

RESTful API

escray

学习 极客时间 如何落地业务建模 8月日更

仿imtoken钱包源码,TP钱包源码开发

端口占用解决方案

一个大红包

8月日更

异步编程的终极解决方案 async/await:用同步的方式去写异步代码

前端依依

大前端 js 经验分享 异步 知识讲解

数据缓存历险记(五)--LRU缓存算法的最终篇

卢卡多多

缓存 LRU Redis 协议 8月日更

基于时间和窗口的算子(六)

Databri_AI

flink 窗口函数 算子

Web 框架 Gin | Gin 介绍

xcbeyond

Go 语言 gin 8月日更

NVIDIA发布新的C++数值计算库:支持GPU加速_编程语言_Sergio De Simone_InfoQ精选文章