百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
V

VkFFT

> 编程语言
开源

Vulkan/CUDA/HIP/OpenCL/Level Zero/Metal 快速傅里叶变换库

1.8K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Vulkan/CUDA/HIP/OpenCL/Level Zero/Metal 快速傅里叶变换库

VkFFT - Vulkan/CUDA/HIP/OpenCL/Level Zero/Metal 高速傅里叶变换库 VkFFT 是一个高效的 GPU 加速多维高速傅里叶变换库,适用于 Vulkan/CUDA/HIP/OpenCL/Level Zero/Metal 项目。VkFFT 的目标是为社区提供一个开源替代方案,同时实现更好的性能。VkFFT 使用 C 语言编写,支持 Vulkan、CUDA、HIP、OpenCL、Level Zero 和 Metal 作为后端。

目前支持的功能: - 1D/2D/3D/ND 系统 - 为任意数量的维度指定 VKFFT_MAX_FFT_DIMENSIONS。 - FFT 的前向和逆向方向。 - 支持大 FFT 维度大小。 当前限制: 所有类型的变换在所有维度中大约为 2^32。 取决于设备上可用的共享内存量。 - Radix-2/3/4/5/7/8/11/13 FFT。 使用 radix 3、5、7、11 和 13 的序列与 2 的幂具有可比的性能。 - Rader 的 FFT 算法,适用于从 17 到最大共享内存长度 (~10000) 的素数。 通过内联并无需额外的内存传输。 - Bluestein 的 FFT 算法,适用于所有其他序列。 通过使用零填充和 VkFFT 的合并卷积支持,优化了尽可能减少内存传输。 - 单精度、双精度、半精度和四倍精度 (双双精度) 支持。 双精度和四倍精度使用 CPU 生成的 LUT 表。 半精度仍然在单精度中执行所有计算,并仅使用半精度来存储数据。 - 所有变换均在原地执行,不会造成性能损失。 通过选择不同的输入/输出缓冲区来支持非原地变换。 - 不需要额外的转置上传。 注意: 可以使用额外的缓冲区对 Four Step FFT 算法后重新排序数据 (对于大序列)。 对卷积而言无关紧要 - 它们会返回到输入顺序 (节省内存)。 - 复数到复数 (C2C)、实数到复数 (R2C)、复数到实数 (C2R) 变换以及实数到实数 (R2R) 的 I、II、III 和 IV 类型的离散余弦变换。 R2R、R2C 和 C2R 经过优化,可在 GPU 上运行。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++c2rconvolutioncudadct

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言