> On Nov. 12, 2015, 2:17 p.m., Tony Gutierrez wrote:
> > src/base/types.hh, line 203
> > <http://reviews.gem5.org/r/3205/diff/1/?file=51611#file51611line203>
> >
> >     Joel's comment from 3185:
> >     
> >     I'm a little confused about the need for this. Is it not possible to 
> > just set a function pointer in Requests? Why do we need to dynamically 
> > instantiate and delete a wrapper class for the function pointer in each 
> > atomic Request?
> 
> Tony Gutierrez wrote:
>     Some of the functors data around, which is why we can simply use a 
> function pointer.
> 
> Joel Hestness wrote:
>     I won't hold up this patch, but this doesn't appear to be required: Sure, 
> the functors currently pass data around. However, in a real system, the data 
> associated with an atomic request gets packed into the payload of memory 
> system packets. We should be doing the same thing in gem5, namely, putting 
> the atomic's data in pkt->data, and the atomic operation is just a function 
> pointer that operates on cache and packet data. That way, we wouldn't need to 
> dynamically instantiate the functors and worry about memory management 
> separate from the packet's data. Further, NVIDIA atomics allow multiple 
> operations to be packed into a single packet (up to 3 in Fermi, and 16 or 32 
> in Kepler/Maxwell), and this current functor structure disallows that 
> capability.
>     
>     Going forward, I feel we need to move toward a solution that does not 
> dynamically instantiate atomic functors, but rather packs atomics into the 
> existing packet data.

I agree, I appreciate your willingness to let this go as-is. This has 
definitely been on my todo list of things in our GPU code to clean up, but 
given the massive effort it was just to get all our previous patches up to gem5 
standards, this was one of the lower priority tasks on my list. But, it is 
definitely somethign I plan on addressing when I get time.


- Tony


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3205/#review7563
-----------------------------------------------------------


On Jan. 6, 2016, 1:12 p.m., Tony Gutierrez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3205/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2016, 1:12 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11280:f5e328bd5233
> ---------------------------
> mem: support for gpu-style RMWs in ruby
> 
> This patch adds support for GPU-style read-modify-write (RMW) operations in
> ruby. Such atomic operations are traditionally executed at the memory 
> controller
> (instead of through an L1 cache using cache-line locking).
> 
> Currently, this patch works by propogating operation functors through the 
> memory
> system.
> 
> 
> Diffs
> -----
> 
>   src/base/types.hh d9a0136ab8cc4b3cf4821d064140b857e60db0dd 
>   src/mem/abstract_mem.cc d9a0136ab8cc4b3cf4821d064140b857e60db0dd 
>   src/mem/packet.hh d9a0136ab8cc4b3cf4821d064140b857e60db0dd 
>   src/mem/protocol/RubySlicc_Exports.sm 
> d9a0136ab8cc4b3cf4821d064140b857e60db0dd 
>   src/mem/request.hh d9a0136ab8cc4b3cf4821d064140b857e60db0dd 
> 
> Diff: http://reviews.gem5.org/r/3205/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Tony Gutierrez
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to