how to configure gem5-gpu

747 views
Skip to first unread message

Freeman Liu

unread,
Mar 15, 2014, 10:57:37 PM3/15/14
to gem5-g...@googlegroups.com
Hi all,

I'm a newer to gem5-gpu. I'm stalled by how to setup some cpu and gpu configurations:

  1. cacheline_size: On the slides of gem5-gpu, I could set CPU's cacheline 64 bytes and repectively GPU's 128 bytes. It seems cacheline_size is fixed to 128.
  2. GPU L1 instruction cache and L1 data cache:  sc_l1_size seems the only option available.
  3. scrachpad memory: Is there any way I could assign GPU's scratchpad memory? 
  4. L3_size and L3_assoc: from help page I know gem5-gpu provides the two options, does it mean GPU and CPU share this last level cache?
By the way, I want to figure out that the VI_hammer's topology. By default each shader core makes up a cluster(16 in total using 16 crossbar), so what are the differences campared with putting all 16 shader cores into 1 cluster(share one crossbar)? On my sense the later one may be a better choice.

Thank you very much for reply.
Best Regards!

Jason Power

unread,
Mar 16, 2014, 1:59:45 PM3/16/14
to Freeman Liu, gem5-g...@googlegroups.com
Hi Freeman,

1) Yes, currently the cacheline size is fixed at 128 bytes. I don't think it's feasible to have a real system that has different cacheline sizes for the CPU and GPU assuming they are sharing a memory controller. If you assume the GPU is a discrete device, this is possible, but that is not the focus of gem5-gpu.
2) Our current model only supports a unified L1 I/D cache.
3) We fully support scratchpad memory. I believe to configure the size you'll have to modify the GPGPU-Sim config file, though. But I haven't investigated this.
4) When using VI_Hammer coherence protocol there is no L3 cache parameters. Additionally, the L3_size (and other cache size parameters) in gem5 usually refer to the classic cache system, not Ruby. Be careful that the parameters you are setting are actually affecting the system you are simulating.

As far as the topology goes, you can read the VI_hammer config files (gem5-gpu/configs/gpu_protocol/VI_hammer*.py) and there is shows how the topology is created. You can modify these files to create whatever topology you want. We use the cluster topology from gem5 (gem5/configs/topologies/Cluster.py) which has some documentation.

Jason

Jason Power

unread,
Mar 17, 2014, 10:28:15 AM3/17/14
to Freeman Liu, gem5-g...@googlegroups.com
Hi Freeman,

For kernel_stats, it's "kernel_stats" with an underscore, not a hyphen.

For the latency question, we have tried to provide the minimum stats. You may need to add some of your own if you're looking for specific information. There are two stats included (warpReadLatency, and warpWriteLatency) that are close to what you want. Additionally, in ruby.stats file there is a lot of information related to specific latencies in the system. See "miss_latency_*" in ruby.stats. Although, those numbers also include the CPU if it is active.

Jason


On Mon, Mar 17, 2014 at 7:53 AM, Freeman Liu <liuyux...@gmail.com> wrote:
Hi Jason,

I could not option --kernel-stats to se_fustion.py. The output is below:
 
freeman@ubuntu$  build/VI_hammer/gem5.opt ../gem5-gpu/configs/se_fusion.py --kernel-stats
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Mar 12 2014 12:43:38
gem5 started Mar 17 2014 20:50:49
gem5 executing on ubuntu
command line: build/VI_hammer/gem5.opt ../gem5-gpu/configs/se_fusion.py --kernel-stats
Usage: se_fusion.py [options]

se_fusion.py: error: no such option: --kernel-stats

Looking forward to your reply! 
Thanks!


2014-03-17 20:09 GMT+08:00 Freeman Liu <liuyux...@gmail.com>:

Hi Jason,

Thanks for your reply, but I met another problem recently.

 I want to get some cache info such as write-miss-latency, write-latency. After searching, I found the FusionProfiler.py is removed which had implemented the functions. On stats.txt and ruby.stats, I could not find related info. Could you please help out?

Thanks!




--
Sincerely,

Freeman Liu



--
Sincerely,

Freeman Liu

Jason Power

unread,
Mar 17, 2014, 10:54:36 AM3/17/14
to Freeman Liu, gem5-g...@googlegroups.com
The current version of gem5-gpu (revision 216:00d91bb1eb24) has these parameters.

To answer your question about adding new parameters. See the .hh files in gem5-gpu/src/gpu/ where they add Stats:: objects, and how they are used in the .cc files. 

Jason


On Mon, Mar 17, 2014 at 9:50 AM, Freeman Liu <liuyux...@gmail.com> wrote:
Hi Jason,

I greped stats.txt and ruby.stats just now. It seems warpReadLatency, and warpWriteLatency are outputed by FusionProfiler. The version I cloned has no such informantion provided.(no FusionProfiler.py available) What files should I change to get more informantion? Could you give me some tips?

Thanks.



--
Sincerely,

Freeman Liu

Reply all
Reply to author
Forward
0 new messages