- 博客(4)
- 收藏
- 关注
原创 CUDA核心:SIMT并行模型
即: 多个线程在同一时间执行相同的指令,但处理不同的数据。多个线程组成线程块,多个线程块组成网格,它们可以是1维、2维、3维的。可以使用不同的内置变量查询。在网格中,threadIdx.y 的步长为 blockDim.x。
2026-04-08 18:24:36
332
原创 CUDA加速EEG信号处理
验证 A] 协方差矩阵对齐度(核心物理意义验证)计算逻辑:比对 CUDA 产出的协方差矩阵与 NumPy 产出的基准矩阵之间的绝对误差。通过标准:最大偏差。物理意义:证明 CUDA 算子在特征值分解、动态正则化及矩阵重建流程中,统计特性与双精度理论完美等价。[验证 B] 数据点矩阵对齐度(像素级还原验证)计算逻辑:比对 CUDA 白化后的具体数据张量与 NumPy 预期输出的逐元素绝对误差。通过标准:最大绝对误差(通常在消除 TF32 污染后可达级别)。物理意义。
2026-04-08 13:21:12
626
原创 CUDA中 内存合并(Memory Coalescing)思考疑问
既然 Warp 里的 32 个线程在没有分支时是并行执行的,那么假设这 32 个线程在同一个时钟周期内,同时向显存发起读取请求。:线程 0 读取地址 0,线程 1 读取地址 4,线程 2 读取地址 8……(32个线程读取一段的内存空间)。:线程 0 读取地址 0,线程 1 读取地址 128,线程 2 读取地址 256……(32个线程读取的内存空间)。在这两种情况下,由于这 32 个读取指令是发出的,硬件的内存控制器(Memory Controller)在处理情况 A 和情况 B 时,会有什么截然不同的反应。
2026-04-07 17:04:16
295
原创 CUDA中Shared Memory的Bank Conflict
当同一个 Warp 中的多个线程试图访问同一个 Bank中的不同地址时,就会发生 Bank Conflict。硬件无法并行处理这些请求,只能将它们序列化(串行处理)。如果有 N 个线程访问同一个 Bank,这就是 N-way Conflict( N 路冲突),内存访问时间将增加 N 倍。如果 Warp 中的多个线程访问的是同一个 Bank 中的完全相同的地址,硬件会触发广播机制(Broadcast),此时不会发生冲突。
2026-04-06 16:29:08
487
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅