gem5-gpu 选项解释
‘--split’ ,该项用于模拟独立显卡,GPU与CPU不在同一芯片上,两者的内存物理上隔绝,使用PCI-Express连接。
‘--access-host-pagetable’,该项用于模拟集成显卡,GPU与CPU在同一芯片上,共享物理内存,(1)当运行正常的Rodinia程序时,依然需要通过DMA引擎把数据从CPU空间复制到GPU空间,大多数协议保证了这种配置的缓存一致性,内存分成两个区域,其中一个区域分给GPU。(2)当运行nocopy版本的程序时,GPU与CPU共享内存地址,不需要额外的拷贝。(疑惑.jpg!模拟的架构跟应用程序之间还有相关性?)
VI_hammer,该协议是gem5-gpu中最适合用于模拟异构融合架构的,GPU使用VI(Valid/Invalid?)协议,CPU-GPU间使用MOESI 协议。VI协议也是AMD、NVIDIA某些GPU架构使用的协议,这种协议为GPU做了优化。如果使用Ruby中的同构协议(把CPU和GPU请求同样看待),由于GPU的大量请求,将会产生相当多的cache间流量。
Ruby,其中的协议都可以用于独立(split)和融合(fused)异构架构。
--Ruby 使用ruby 缓存模型,--caches --l2cache启用classic缓存模型,VI_hammer不支持这两个选项。编译gem5-gpu时指定P协议,运行时使用编译时指定的P协议。
--Ruby选项的作用可能就是与 -topology搭配使用,改变缓存拓扑结构(拓扑与协议无关?),比如mesh、crossbar、pt2pt等。