写点什么

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

评论

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

网关乱码问题排查纪实

小江

k8s java; 字符集 ,docker JVM;

被阿里奉为“座上宾”!2021公认最权威的分布式微服务指导手册

Java 程序员 面试 微服务 计算机

Nebula Graph 源码解读系列 | Vol.02 详解 Validator

NebulaGraph

图数据库 源码学习 分布式图数据库

按键编码ASCII对照表

入门小站

工具

24. AI只是人类的工具

Databri_AI

人工智能

一分钟了解MACH架构

俞凡

架构

Linux用户所属组变更

在即

9月日更

模块四作业设计千万级学生管理系统的考试试卷存储方案

apple

说要内推阿里的学长,替我整理好的Java面试题,分享给大家

Java spring 程序员 架构 编程语言

做一个有温度的程序员

牧小农

SRE实战(01)|初识SRE,探索SRE如何推进技术债务改造

方勇(gopher)

微服务 架构设计 SRE 服务治理 构架

"你的网站加载速度很慢怎么办?"——技术经理在面试中可能遇到的可怕问题

云原生

架构 面试 web技术 职业生涯

linux之systemctl命令

入门小站

Linux

架构实战训练营|作业|模块4

Frode

「架构实战营」

阿里内部神作Java并发原理JDK源码手册让Github沸腾,现已开源

Java 编程 程序员 面试 计算机

java 虚拟机 GC 学习笔记二

风翱

JVM 9月日更

「免费开源」基于Vue和Quasar的前端SPA项目crudapi零代码开发平台后台管理系统实战之元数据导出导入(十五)

crudapi

Vue API 元数据 crudapi quasar

【得物技术】MySQL 8.0:新的身份验证插件(caching_sha2_password)

得物技术

MySQL 默认方法 得物技术 身份 身份插件

Nebula Graph 源码解读系列 | Vol.03 Planner 的实现

NebulaGraph

图数据库 源码学习 分布式图数据库

Alibaba2021全新Java高并发终极版手册,现已在Github上标星80K

Java 编程 程序员 面试 计算机

架构实战营模块四

WolvesLeader

「架构实战营」

Postman 如何调试加密接口?

星安果

Postman

终于有人把大厂面试必考的动态规划、链表、二叉树、字符串全部整理出来了

Java 架构 面试 算法 后端

iOS 优雅的处理网络数据,你真的会吗?不如看看这篇.

HelloWorld杰少

大前端 引航计划

北鲲云超算平台有哪些形式为高性能计算用户提供算力服务?

北鲲云

前端性能优化实战(一)

Augus

JavaScript 9月日更

阿里P8不眠不休,用了两个月整理出这本32W字Java面试手册,在Github上引起震动

Java 编程 程序员 面试 计算机

Go 中更好的定时调度

baiyutang

golang 9月日更

【SpringCloud 技术专题】「Eureka 源码分析」从源码层面让你认识 Eureka 工作流程和运作机制(下)

码界西柚

微服务 SpringCloud Eureka 注册中心 9月日更

什么是产品感?

吴世亮

产品 产品设计 数字化 产品感 sense

绝绝子!LeetCode官网首发的1137页的数据结构与算法刷题指南

Java 编程 程序员 面试 计算机

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