写点什么

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

评论

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

远程桌面连接是什么?远程桌面连接使用教程

RayLink远程工具

好用的远程控制桌面连接工具有哪些?

RayLink远程工具

远程桌面连接

远程桌面连接有哪些方式?远程桌面工具推荐

RayLink远程工具

远程桌面连接 远程桌面工具

中国量子产业集结,用知识产权助力量子应用化

脑极体

深入浅出RPC服务 | 不同层的网络协议

京东科技开发者

网络协议 RPC调用 应用层 jsf 企业号 3 月 PK 榜

内网渗透之某后渗透利用

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

远程桌面和远程协助的区别,选择哪个方式连接更好?

RayLink远程工具

远程协助 远程桌面连接

尤大:不会说 Rap 的前端不是好前端!写一个 v-rap 指令!

泰罗凹凸曼

JavaScript 有趣的技术知识

循序渐进讲解负载均衡vivoGateway(VGW)

vivo互联网技术

负载均衡 网关

华为全新发布2023春季旗舰新品,智慧生活再进化

最新动态

给程序加个进度条吧!1行Python代码,快速搞定~

程序员晚枫

Python pip 进度条

DrawerLayout(官方侧滑菜单)的简单使用

芯动大师

ViewPager DrawerLayout SlidingMenu

火山引擎边缘渲染,驱动游戏体验升级

火山引擎边缘云

边缘计算 火山引擎 渲染 边缘云

Bitmap、RoaringBitmap原理分析

京东科技开发者

数据结构 算法 存储 BitMap 企业号 3 月 PK 榜

远程桌面连接如何设置?远程桌面连接的设置方法

RayLink远程工具

远程桌面连接

Nautilus Chain主网上线在即空投规则公布,如何获得更多的空投?

鳄鱼视界

2万字60道MySQL经典面试题总结(附答案)

程序员大彬

MySQL 数据库 java面试

数据库+chatGPT3.5 优化、索引、注释、SQL就是一句话的事了

非喵鱼

Java 数据库 openai ChatGPT ChatGPT4

Movist Pro for mac播放流畅、观影愉悦!

Rose

苹果电脑 视频播放器 Movist Pro Mac Movist Pro 中文版

如何将「知识」体系化管理

Java 架构 职场 知识管理

Acrobat DC弹窗:“未找到IMSlib,Acrobat服务将无法正常工作”,如何解决?

Rose

Acrobat DC 服务将无法正常工作

免费的远程控制软件有哪些?远程控制软件哪个好用?

RayLink远程工具

远程控制软件 远控软件

ChatGPT编程秀-2:最小元素的设计

仝键

JavaScript 编程 架构 java ChatGPT

Docker 开始清退开源组织,不付费就删除所有私镜像怎么看

HoneyMoose

远程控制软件RayLink助力畅玩爆火双人游戏

RayLink远程工具

远程控制软件

如何针对多租户 SaaS 使用案例扩展机器学习推理

亚马逊云科技 (Amazon Web Services)

Amazon SageMaker

Error:SyntaxError:JSON Parse error:Unexpected EOF 解决办法

Rose

adobe 安装报错

Ableton Live 11 Suite 音乐制作软件v11.2.11中文版安装教程

Rose

音乐制作 Ableton Live 11 Suite Ableton Live

Nautilus Chain主网上线在即空投规则公布,如何获得更多的空投?

股市老人

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