05 2022 档案
摘要:场景:使用 cmake 产生一个库 别人使用这个库的时候,需要使用到的是 xxx.so 和 头文件, 因此,在这个库的 CMakeLists.txt 中需要使用 cmake 的语法指定哪一部分的头文件是需要暴露给这个库的使用者的 指定的语法为:$<INSTALL_INTERFACE:xxx> 问题:
阅读全文
摘要:现在来看一个非常简单的情形:CPU传输数据给GPU。我们使用SystemC来对该情形进行事务级的建模。 CPU是事务的发起者,GPU是事务的接收者。它们通过 Socket连接(注意,这里的Socket不是网络中的那个Socket)。事务发起者的Socket类型是simple_initiator_so
阅读全文
摘要:相同点 一个时钟周期可以同时执行多条指令 不同点 VLIW 依靠编译器和程序员自身来决定哪些指令可以并行执行 硬件实现较简单 功能比较专一的专用处理器领域 超标量 靠硬件自身来决定哪些指令可以并行地执行 硬件实现较复杂 通用领域的高性能处理器
阅读全文
摘要:我们知道,NVIDIA的GPU中线程调度的基本单位是Warp,一个Warp包含32个线程。 Warp的出现是为了隐藏指令执行的时延。 假设执行指令如下, add r2, r0, r1 // r0 + r1 -> r2 add r5, r3, r4 // r3 + r4 -> r5 load r6 [
阅读全文
摘要:处理器的执行流水线通常分为5个阶段,分别为:取指、译码、访存、执行和写回。这里的访存指的是访问寄存器。 假设每个阶段只占用一个时钟周期,那么这个5级流水线的处理器每个时钟周期可以执行一条指令。如下图, 如果前一条指令的目的寄存器是当前指令的源寄存器,如: add r2, r0, r1 // r0 +
阅读全文

浙公网安备 33010602011771号