SuperAPI AI 工具集

optimize-for-gpu

编程与开发

查看项目

更新于 10-16 09:54

技能介绍

用途:这是一个面向 Python 的 GPU 优化技能,帮助用户编写新的 GPU 加速代码,或把已有的 CPU 密集型 Python 代码迁移到 NVIDIA GPU 上运行,适用于数值与科学计算、数据框处理、机器学习、图分析、图像处理、地理空间分析、向量检索与物理仿真等负载。

主要能力与选型:技能按用户代码的实际类型给出库选择建议,并在写代码前阅读对应参考文件。数组与矩阵运算(NumPy/SciPy 风格)选 CuPy,可包装 cuBLAS、cuFFT、cuSOLVER、cuSPARSE、cuRAND,通常把 import numpy as np 改为 import cupy as cp 即可。需要自定义 GPU 内核、线程块与共享内存控制时选 Numba CUDA,支持 @vectorize(target='cuda') 等。物理仿真、几何处理、机器人学与可微仿真选 Warp,提供 vec3、mat33、quat、transform 等空间类型与 Mesh、Volume、HashGrid、BVH 查询。数据框处理(pandas 风格)选 cuDF,支持 cudf.pandas 零改动加速。机器学习(scikit-learn 风格)选 cuML,支持 cuml.accel 零改动加速,资料称简单线性模型约 2-10 倍,HDBSCAN、KNN 等约 60-600 倍。图分析(NetworkX 风格)选 cuGraph,支持 nx-cugraph 后端,资料称小图约 10 倍、百万边以上约 500 倍以上。高吞吐文件 IO 选 KvikIO,提供 cuFile 绑定与 GPUDirect Storage,可直读 NVMe、S3、HTTP、WebHDFS 到 GPU 内存,不适合 CSV/Parquet/JSON 等表格格式。交互式大屏选 cuxfilter,基于 cuDF 在 GPU 上过滤、分组与聚合。图像处理选 cuCIM,cucim.skimage 提供 200 多个函数,并含全切片图像读取器 CuImage,资料称比 OpenSlide 快 5-6 倍。向量检索选 cuVS,提供 CAGRA、IVF-Flat、IVF-PQ、暴力搜索等索引。地理空间选 cuSpatial,提供兼容 GeoPandas 的类型与空间连接、距离、轨迹函数。底层原语与多 GPU 选 RAFT,含稀疏特征值求解、device_ndarray、R-MAT 图生成与 raft-dask;向量检索已迁至 cuVS,不应再用 RAFT。

组合使用:各库通过 CUDA Array Interface 零拷贝互通,常见组合如 cuDF+cuML 构成完整 RAPIDS 流程、cuDF+cuGraph、cuML+cuVS、Warp+PyTorch 可微仿真、CuPy+Numba、KvikIO+CuPy、cuCIM+PyTorch 等。

限制:技能要求先读对应参考文件再写 GPU 代码;资料未提供具体安装命令、版本要求、许可与收费信息;加速倍数为资料中给出的估算,实际效果依工作负载与硬件而定。