Presentation is loading. Please wait.

Presentation is loading. Please wait.

Status – Week 248 Victor Moya. Summary Streamer. Streamer. TraceDriver. TraceDriver. bGPU bGPU Signal Traffic Analyzer. Signal Traffic Analyzer. How to.

Similar presentations


Presentation on theme: "Status – Week 248 Victor Moya. Summary Streamer. Streamer. TraceDriver. TraceDriver. bGPU bGPU Signal Traffic Analyzer. Signal Traffic Analyzer. How to."— Presentation transcript:

1 Status – Week 248 Victor Moya

2 Summary Streamer. Streamer. TraceDriver. TraceDriver. bGPU bGPU Signal Traffic Analyzer. Signal Traffic Analyzer. How to commit code. How to commit code.

3 Streamer Added index mode. Added index mode. Supports out of order memory response. Supports out of order memory response. Supports out of order streaming to the shaders. Supports out of order streaming to the shaders. Supports out of order shader output. Supports out of order shader output. Vertexs are sent in order to the Rasterizer. Vertexs are sent in order to the Rasterizer. Implemented a kind of ‘index/vertex reorder queue’. Implemented a kind of ‘index/vertex reorder queue’. Stream mode and index mode use the same streaming code. Stream mode and index mode use the same streaming code.

4 Streamer Index Data Buffer Index Cache Output Cache Input Cache to Shaderfrom Shader to Rasterizer from Memory Controller commit (vertex index) (vertex attributes)

5 Streamer Index Data Buffer Vertex Fifo Vertex Cache VRQ from Memory Controller next Shader”i” 4 4 4 head tail alloc fifo

6 Streamer (index mode) 1) Load index data into the index buffer (divided in two half buffers for ‘pipelining’). 1) Load index data into the index buffer (divided in two half buffers for ‘pipelining’). 2) If the index cache has a free entry and there are free input and output cache entries (starvation?) => 2) If the index cache has a free entry and there are free input and output cache entries (starvation?) => 2.1) read new index from index data buffer. 2.1) read new index from index data buffer. 2.2) search index in the output cache => 2.2) search index in the output cache => 2.2.1) uf found and output cache entry free => mark index/vertex as shaded, reserve the output cache entry for the index/vertex (references = 1). 2.2.1) uf found and output cache entry free => mark index/vertex as shaded, reserve the output cache entry for the index/vertex (references = 1). 2.2.2) uf found output cache entry and references > 0 => mark index as shaded, increment reference counter. 2.2.2) uf found output cache entry and references > 0 => mark index as shaded, increment reference counter. 2.2.3) if found output cache entry and references == 0 => mark index as not shaded, increment reference counter. 2.2.3) if found output cache entry and references == 0 => mark index as not shaded, increment reference counter. 2.2.4) if not found => reserve new input and output cache entries for the index/vertex, mark as not loaded and not shaded. 2.2.4) if not found => reserve new input and output cache entries for the index/vertex, mark as not loaded and not shaded.

7 Streamer (index mode) 3) If the memory controller is ready and there are index/vertex not loaded => ask for the next attribute of the current load vertex. 3) If the memory controller is ready and there are index/vertex not loaded => ask for the next attribute of the current load vertex. 4) If there are loaded indexes (vertex) and the shaders can receive new vertexes => send vertex to the vertex shader. Issue can be out of order. 4) If there are loaded indexes (vertex) and the shaders can receive new vertexes => send vertex to the vertex shader. Issue can be out of order.

8 Streamer (index mode) 5) If there are new vertex outputs from the shaders => broadcast to the index cache the vertex id, mark indexes as shaded, store vertex output in the reserved entry of the ouput cache. Can be received out of order. 5) If there are new vertex outputs from the shaders => broadcast to the index cache the vertex id, mark indexes as shaded, store vertex output in the reserved entry of the ouput cache. Can be received out of order. 6) If the current index/vertex to commit in the index cache has been already shaded adn the rasterizer is ready => send to the rasterizer, decrement output cache entry reference counter, if references are 0 free output cache entry, free index cache entry. 6) If the current index/vertex to commit in the index cache has been already shaded adn the rasterizer is ready => send to the rasterizer, decrement output cache entry reference counter, if references are 0 free output cache entry, free index cache entry.

9 Streamer (stream mode) Use vertex counter (start + current vertex) as index. Use vertex counter (start + current vertex) as index. Uses the same algorithm that index mode. Uses the same algorithm that index mode.

10 TraceDriver Early implementation. Early implementation. Added to the cvs tree. Added to the cvs tree. To do: To do: correct some errors. correct some errors. add vertex program binary code. add vertex program binary code. integrate with the simulator. integrate with the simulator. Future work: Future work: add support for vertex arrays, index arrays, vertexs programs. add support for vertex arrays, index arrays, vertexs programs. support ‘real’ OpenGL traces. support ‘real’ OpenGL traces.

11 bGPU Now I can start testing it... Now I can start testing it...

12 Signal Traffic Analyzer Changes to the simulator infraestructure already discussed (mail): Changes to the simulator infraestructure already discussed (mail): Agreggate dynamic object and traffic control functionalities in a single class. Agreggate dynamic object and traffic control functionalities in a single class. All data going through the signal class would use objects derived from that class. All data going through the signal class would use objects derived from that class. SignalBinder has the capability to dump the traffic for a given cycle. SignalBinder has the capability to dump the traffic for a given cycle.

13 Signal Traffic Analyzer Visualization program? Visualization program? Perl? C? Perl? C?

14 How to commit code New files and modified files are not sent zipped using mail to other programmers. New files and modified files are not sent zipped using mail to other programmers. New files and modified files are commited using CVS. New files and modified files are commited using CVS. New files and modified files must keep the code style rules: New files and modified files must keep the code style rules: Indentation is 4 spaces, not 3 spaces, not a tab. Indentation is 4 spaces, not 3 spaces, not a tab. Newlines use the UNIX format not the Windows lf/cr format. Newlines use the UNIX format not the Windows lf/cr format. DO NOT COMMIT CODE WITHOUT FOLLOWING THIS RULES. DO NOT COMMIT CODE WITHOUT FOLLOWING THIS RULES.

15 How to commit code How to commit code with CVS? How to commit code with CVS? Put the modified/new files in your cvs image directory. Put the modified/new files in your cvs image directory. New files and directories are added using ‘cvs add filename’. New files and directories are added using ‘cvs add filename’. BEFORE COMMITING ALWAYS DO AN UPDATE: ‘cvs update’ in the cvs source root directoy. BEFORE COMMITING ALWAYS DO AN UPDATE: ‘cvs update’ in the cvs source root directoy. How to resolve update conflicts? How to resolve update conflicts? COMMIT: ‘cvs commit’. COMMIT: ‘cvs commit’. Put some comments with what has changed in the code would be nice. Put some comments with what has changed in the code would be nice. Send those comments in a commit notice to the other programmers is also nice. Send those comments in a commit notice to the other programmers is also nice.

16 How to commit code How to resolve update conflicts? How to resolve update conflicts? 1) cvs marks in the source the conflict regions and puts the two code versions. 1) cvs marks in the source the conflict regions and puts the two code versions. 2) it shouldn’t compile correctly. 2) it shouldn’t compile correctly. 3) if it is code you have modified and the conflict is with the old version -> use your code. 3) if it is code you have modified and the conflict is with the old version -> use your code. 4) if it is code someone else has modified and committed but you have not touched -> use the original code. 4) if it is code someone else has modified and committed but you have not touched -> use the original code.

17 How to commit code 5) if it is code someone else has modified and committed and you have also modified -> 5) if it is code someone else has modified and committed and you have also modified -> a) you know what to do -> do you really know? -> really-> really really really? -> do it. a) you know what to do -> do you really know? -> really-> really really really? -> do it. b) you don’t know -> ask. b) you don’t know -> ask. 6) you don’t know what to do -> ask. 6) you don’t know what to do -> ask.


Download ppt "Status – Week 248 Victor Moya. Summary Streamer. Streamer. TraceDriver. TraceDriver. bGPU bGPU Signal Traffic Analyzer. Signal Traffic Analyzer. How to."

Similar presentations


Ads by Google