曦云系列通用GPU mcPy使用手册
1. 概述
1.1. mcPy 介绍
1.2. 软件包信息
2. 安装部署
2.1. 依赖关系
2.1.1. Python 依赖
2.2. mcPy 自动安装与卸载
2.3. mcPy 手动安装与卸载
2.3.1. wheel包
2.4. 环境变量设置
2.5. 常见问题
3. mcPy 用户指南
3.1. mcPy 基础
3.1.1. mcPy N维数组基础
3.1.2. 当前设备(Current Device)
3.1.3. 当前流(Current Stream)
3.1.4. 数据传输(Data Transfer)
3.1.4.1. 将数据移动到设备
3.1.4.2. 将数据从设备移动到主机
3.1.5. 编写CPU/GPU无关代码
3.2. 用户自定义内核
3.2.1. Elementwise 内核基本概念
3.2.2. 通用类型的内核
3.2.3. 原始参数标识符
3.2.4. Reduction 内核
3.2.5. 原始内核
3.2.6. 内核参数
3.2.7. 用户自定义数据类型
3.2.8. 原始modules
3.2.9. 内核融合
3.2.10. JIT 编译内核
3.2.10.1. 基本使用方式
3.2.10.2. 基本设计原则
3.2.10.3. 类型规则
3.2.10.4. 使用限制
3.3. 快速傅里叶变换
3.3.1. 用户管理的 FFT 计划
3.3.2. FFT 计划缓存
3.3.3. FFT 回调
3.3.4. 多 GPU FFT
3.3.5. 半精度 FFT
3.4. 内存管理
3.4.1. 内存池操作
3.4.2. 限制显存使用量
3.4.3. 变更内存池
3.5. 高性能最佳实践
3.5.1. 基准测试
3.5.2. 一次性开销
3.5.2.1. 上下文初始化
3.5.2.2. 内核编译
3.5.3. 使用 mcCUB 对归约和其他例程加速
3.6. 互操作性
3.6.1. NumPy
3.6.2. mpi4py
3.6.3. PyTorch
3.6.4. 在 PyTorch 中使用用户自定义内核
3.6.5. 内存管理RMMX
3.6.6. DLPack
3.6.6.1. DLPack 数据交换协议
3.6.7. 显存指针
3.6.7.1. Import
3.6.7.2. Export
3.6.8. MXMACA 流指针
3.6.8.1. Import
3.6.8.2. Export
3.7. mcPy 和 NumPy 的差异
3.7.1. float 到 integer 类型转换
3.7.2. Random 方法支持 dtype 参数
3.7.3. 越界索引
3.7.4. 多次引用同一位置
3.7.5. 零维数组
3.7.5.1. 归约方法
3.7.5.2. 类型提升
3.7.6. 数据类型
3.7.7. 仅接受 mcPy 数组或标量的通用函数
3.7.8. Random 数组种子被散列到一个数字
3.7.9. NaN(not-a-number)处理
3.7.10. 连续性和步长
4. mcPy 编程接口
5. 附录
曦云系列通用GPU mcPy使用手册
搜索
请启用 JavaScript 以便使用搜索功能