《左手坐标系坐标变换》 https://tieba.baidu.com/p/7668913258 。
回复 22 楼 dons222 ,
是的是的, 其实 我 习惯 用 Sql 而 对 GPU 一无所知, 所以 我还是 很看好 用 Sql 计算 的, 用 Sql 进行 大量数据 的 关系运算 。
但 进一步 想了想, 比如 矩阵乘法, GPU 处理 一个 矩阵 的 元素 和 另一个 矩阵 的 元素 的 对应关系 就是 一个 寻址, 而 数据库 按 表 处理 的 话, 根据 一个 表 的 字段 查找 另一个表 的 一笔记录 的 字段, 即使 用 索引, 也是 一个 复杂 的 工序(程序), 相比 寻址 的 话 。
GPU 是不是 有 Cache ? 将 内存 的 数据 批量 复制到 GPU Cache 进行计算, 完成 后 再 复制 会 内存, 这些 应该 有 驱动 控制, 上层 程序 调用 驱动 , 上层程序 比如 图形库 GL 。
用户程序 -> 3D 库 (比如 Unity3D) -> 图形库 GL -> 驱动 -> GPU (指令集)
应该是 这么一个 架构 。
这样, 将 数据 传送给 GPU 运算 再返回, 也是 一次 轻量 IO 了 。
由上, 产生一个想法, 可以 写 一个 程序 来 计算 图形函数 和 算法, 就像 GPU 一样, 只不过 现在 是 在 CPU 里 运行 。 也就是说, 我们 写一些 程序, 让 这些 程序 在 CPU 里 运行 来 代替 GPU 。
这个想法 当然 会 引出 问题 : GPU 不就是 为了 将 图形计算 交给 专门 的 硬件芯片(GPU) 而 产生的 吗 ? 怎么 现在 又要 回到 老路, 在 CPU 里 计算了 ? CPU 执行 软代码 能有 GPU 固化 的 硬代码(复杂指令集) 快 吗 ? 而且 GPU 应该 对 浮点数 和 整数 运算 都 做过 增强, 比如 支持 更多位数 的 浮点数 和 整数 运算, 比如 128 位 , 复杂指令集 和 更多位数 的 四则运算 这些 固化 的 运算 可以 预先设计 好 需要 的 大寄存器 。 大寄存器 指 位数 多,比如 128 位, 256 位, 对 寄存器 而言, 位数大 也就是 容量大, 当然, 数量也要够 。
GPU 也可能 支持 需要 更少 的 时钟周期 的 除法, 除法 需要 的 时钟周期 越少, 需要 的 电路规模 越大, 见 《》