写点什么

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:004795

评论

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

instanceof运算符的实质:Java继承链与JavaScript原型链

zhoulujun

JavaScript 原型链 instanceof constructor prototype

模块6

Geek_ywh40v

模块六作业

VE

架构实战营

架构实战营第六模块作业

子豪sirius

架构实战营

【iOS独立开发】基于iCloud构建游戏内排行榜

LabLawliet

ios 8月日更 独立开发

VR运动病要想好,FemTech少不了

脑极体

模块六作业

河马先生

架构实战营

Lua 入门到精通( 01 Lua 简介以及软件安装)《做一个脚本高手》

陈皮的JavaLib

lua Linux 运维 脚本语言 8月日更

架构训练营模块五作业

高铎

架构实战营

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

Java 编程 架构 面试 程序人生

架构实战营 模块六 作业

脉醉

#架构实战营

模块6作业

柱林

模块6 作业

Geek_35a345

微信朋友圈高性能复杂度分析模拟

穿裤子的云

架构实战营

05. AI就是会学习的计算机程序:从机器学习角度看AI

Databri_AI

人工智能

架构训练营模块六作业

高铎

架构实战营

网络攻防学习笔记 Day120

穿过生命散发芬芳

网络安全 8月日更

模块六

秀聪

架构训练营

架构实战营模块6作业

zlz

架构1期模块六作业

五只羊

架构实战营

模块六作业

seawolflin

架构实战营

kafka核心技术与实战学习笔记(一)

追风少年

kafka

架构实战营作业 M06

Shawn Liu

「架构实战营」

❤ 超详细《软件测试全栈技能》思维导图详解 ❤(建议收藏) ​

程序员阿沐

程序员 软件测试 自动化测试 经验分享 技能图谱

深入了解RocketMQ之NameServer

邱学喆

KVConfigManager RouteInfoManager

从命令执行到GetShell,适合新手学习

网络安全学海

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

模块二作业

Geek_fc100d

架构实战营

极客时间---架构实战营2期---模块一作业

Dylan TANG

极客时间 架构实战营 作业一

性能测试框架中实时QPS取样器实现

FunTester

性能测试 测试框架 压力测试 QPS 取样器

拆分电商系统为微服务

feitian

把知识玩起来:Ansible(一)快乐的入门

南冥

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