写点什么

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

评论

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

SSD 价格已经翻番,还要不要继续选择全闪?

XSKY星辰天合

EC 分布式全闪 三副本

基于ChatGPT打造安全脚本工具流程

不在线第一只蜗牛

安全 ChatGPT

利用SD-WAN技术优化企业网络

Ogcloud

网络 SD-WAN sdn 企业组网 SD-WAN组网

库存领域核心能力--库存预占 建设实践

京东科技开发者

芜湖等保测评机构有哪些?在哪里?

行云管家

等保 等保测评 芜湖

利用SEO服务器优化你的网站,获得更多曝光机会

一只扑棱蛾子

服务器

系统logo及版权信息是否支持自定义配置 ?

开放签开源电子签章

版权保护 产品管理

市场份额第一!博睿数据持续领跑中国APM市场

博睿数据

可观测性 IT IT 运维 市场份额

SD-WAN解决电商企业海外业务网络难题

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

国密加密卡定义以及作用简单说明

行云管家

数据安全 国密 国密加密卡

智能制造领域智能问答系统

悦数图数据库

垃圾车的新用途:车外装摄像头,结合AI检查市容

算AI

人工智能 创业 AI 创新

做AI产品经理的三年,聊聊我的心得

京东零售技术

人工智能 产品经理 企业号 4 月 PK 榜

从源码到实战:探寻App中的等待神秘力量,强制等待vs隐式等待

测试人

软件测试 自动化测试 测试开发

小小开发板承载万千创新可能,小熊派的云上奇遇记

华为云开发者联盟

物联网 华为云 华为云开发者联盟 先锋开发者云上说 企业号2024年4月PK榜

官宣|Apache Paimon 毕业成为顶级项目,数据湖步入实时新篇章!

Apache Flink

Apache 大数据 flink paimon

国际标准图查询语言 GQL 正式发布,悦数图数据库业界首家原生支持

悦数图数据库

智能调度|AIRIOT智能车队管理解决方案

AIRIOT

物联网平台 智慧系统 智能车队管理

搞定了 6 种分布式ID,分库分表哪个适合做主键?

程序员小富

Java 分库分表 spring-boot

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

汀丶人工智能

大模型 text2sql NL2SQL

电商新宠:淘宝拍立淘API接口助力精准搜索商品信息

技术冰糖葫芦

API 接口 API 测试 pinduoduo API

容器化Java程序秒级弹性伸缩实践

HelloGeek

Java 容器 弹性伸缩

生态短讯 | Tapdata 与 TDengine 完成产品兼容性互认证,打造物联网实时数据生态

tapdata

用户行为分析模型实践(四)—— 留存分析模型

vivo互联网技术

hive 数据分析 Clickhouse 留存分析模型

[图数据库]gStore1.2在Ubuntu和Java环境下的安装与试用

alexgaoyh

Java ubuntu 国产化 图数据库 gstore

「布道师系列文章」解析 AutoMQ 对象存储中的文件存储格式

AutoMQ

大数据 kafka 云原生 知乎 AutoMQ

App测试中,强制等待和隐式等待谁更强?

霍格沃兹测试开发学社

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读

汀丶人工智能

自然语言处理 大模型 NL2SQL

中科院院士:借鉴美国超级计算机安腾 探索我国技术新路径

极客天地

软件测试学习笔记丨显式等待的高级使用

测试人

软件测试 自动化测试 测试开发

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