requiring creating interconnection problem in gem5-gpu

24 views
Skip to first unread message

Yuqi Yang

unread,
Feb 26, 2021, 2:26:43 AM2/26/21
to gem5-gpu Developers List
Hi experts,
I want to add some functions based on original gem5-gpu codes, so please give me some help.  
In gpgpusim part, there already is an interconnection between simtCoreCluster an memory. But now, I want to creat an interconnection between simtCoreClusters. But the request of simtCoreCluster is from tlb of cuda core of simtCoreCluster. (And the connection between cuda core and tlb is implemented by master port and slave port.)
I want to ask some questions, could give me some ideas?
Question 1: does there need how many wrappers in gpgpu? 
In original codes for interconnection between simtCoreClusters and memory, there are 4 wrappers: coresWrapper for cycling shader core, icntWrapper for cycling interconnection of intersim, l2Wrapper for cycling l2 cache, and dramWrapper for cycling memory partition.
So, when I want to create an interconnection between simtCoreClusters, do I need to create 3 wrappers?(one wrapper for cycling simtCoreCluster to send request, one wrapper for cycling another interconnection for simtCoreClusters, one wrapper for cycling simtCoreCluster to send reply.) Or say, I just need add one wrapper to cycle interconnection for between simtCoreClusters?(and the function of simtCoreCluster sending request and reply just also add to the original coresWrapper)
The figure is the code of wrapper in  original cuda_gpu.cc file.
wrapper.PNG
Question 2: In shader_tlb.cc, I send request to its simtCoreCluster's miss_queue. But then, how to wait for reply?
And I just using the simple way to check whether the flag of the shader core of simtCoreCluster is true. And the checking mechanis is to using a while loop structure to check whether the flag is true.
But I think the while loop is not right. Could you give me an answer?
The first line in this figure is to send  request to its simtCoreCluster's miss_queue.
code.PNG
Question 3: When I using while loop to wait reply for this shader core and simtCoreCluster is to inject request to interconnection, the program cannot go on and no bug just don't move at the code of sending request to simtCoreCluster's miss_queue of tlb. 
Could you give me some advices or tell me the reason? 
The second line in this figure is using while loop to wait reply for this shader core.
code.PNG
Could you give me some help? 

Reply all
Reply to author
Forward
0 new messages