|
知乎有个很热门的提问:“老虎遇到拿匕首的人,谁的胜率大?”
俺发起灵魂的拷问:“为什不拿键盘?匕首的杀伤力哪有键盘厉害 ?”
流式多处理器(SM)或计算单元(CU)的微观结构因具体的 GPU 架构和世代而异。
英伟达™(NVIDIA®)流式多核处理器(SM):
CUDA 内核: 这些是基本算术单元,能够执行加法和乘法等标量算术运算。
特殊功能单元(SFU): 这些单元处理复杂的数学运算,如正弦、余弦和平方根。
纹理单元: 它们处理图形渲染中的纹理运算。
加载/存储单元: 这些单元管理内存的读取和写入。
共享内存: SM 中所有 CUDA 内核均可访问的一种片上内存形式,适用于线程之间共享数据。
L1 高速缓存: 用于存储频繁访问数据的快速片上缓存。
翘曲调度器: 它负责管理和调度 "warps"(英伟达术语,即一组 32 个线程)。
寄存器文件:用于存储每个线程局部变量的片上存储器。
AMD 的计算单元(CU):
流处理器(SP): 这些是处理向量和标量运算的基本运算单元。一个 CU 通常包含多个 SP。
纹理单元: 处理图形渲染的纹理操作。
标量单元: 执行标量操作。
矢量单元 执行矢量操作。
本地数据共享: 与英伟达™(NVIDIA®)的共享内存类似,这是一个片上内存,用于在 CU 中的线程间共享数据。
L1 缓存: 用于频繁访问数据的快速缓存。
分支与消息单元: 管理 CU 内的控制流和消息传递操作。
波前调度器: 在 AMD 的术语中,"波阵面 "类似于英伟达的 warp。波阵面调度器负责管理和调度这些波阵面(通常由 64 个线程组成)。
寄存器文件:片上存储每个线程的本地变量。
大多数 SM 或 CU 中一般都有上述组件,但不同 GPU 代次和架构的具体数量、配置和功能可能会有很大不同。GPU 通常会对这些单元进行改进和增强,以提高性能、能效和功能集。
为流多处理器 (SM) 或 GPU 中的计算单元 (CU) 创建 VHDL 原型是一个复杂的任务。
实际上,这样的 SM 或 CU 包含许多高度优化的块、存储器、功能单元和调度程序。
一个非常简化的 VHDL 示例,代表一个具有基本功能的 SM 或 CU 的概念高级模型。
这会给您一个起点:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity SimpleSM is
Port ( CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
INPUT1 : in STD_LOGIC_VECTOR (31 downto 0);
INPUT2 : in STD_LOGIC_VECTOR (31 downto 0);
OUTPUT : out STD_LOGIC_VECTOR (31 downto 0));
end SimpleSM;
architecture Behavior of SimpleSM is
signal core1_out, core2_out: STD_LOGIC_VECTOR (31 downto 0);
component SimpleCore is
Port ( A : in STD_LOGIC_VECTOR (31 downto 0);
B : in STD_LOGIC_VECTOR (31 downto 0);
C : out STD_LOGIC_VECTOR (31 downto 0));
end component;
begin
-- Simple Core Implementation, e.g., an arithmetic unit
core1: SimpleCore
port map (A => INPUT1, B => INPUT2, C => core1_out);
core2: SimpleCore
port map (A => core1_out, B => INPUT2, C => core2_out);
-- Sample logic, let's say we simply add outputs from two cores
OUTPUT <= core1_out + core2_out;
end Behavior;
REF:
https://www.secs.oakland.edu/~llamocca/Courses/ECE495/FinalProject/Group6_simplegpu.pdf
Simple Graphics Processing Unit on an FPGA, Anthony Bogedin, Michael Lohrer
Electrical and Computer Engineering Department, School of Engineering and Computer Science
Oakland University, Rochester, MI
https://link.springer.com/article/10.1007/s12652-019-01357-4
https://electronics.stackexchange.com/questions/15811/where-to-start-when-considering-making-a-gpu |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|