<div dir="ltr"><div>Getting back to this subject, with the GC3000 in the i.MX6qp, ocram2 and ocram3 was added specifically to support the PRE (prefetch and resolve engine). Both of ocram2 and ocram3 are needed by the PRE to support the use case of multiple 1080p displays wired up to the IPUs.<br></div><div><br></div><div>For most use cases, no more than a single 1080p display is used which I believe means that at least all of ocram2 or ocram3 is fully unused and probably 1/2 of ocram2 or ocram3 is also unused. This means we probably have 128KB or 192KB of OCRAM available that is both ~8% faster than the DDR and probably lower latency than the DDR. Not only is this OCRAM faster and lower latency than the DDR but any time this memory is used, it both reduces the use of the limited bandwidth of the system DDR and reduces the power consumed by accessing the DDR.</div><div><br></div><div>Are there any non-application-specific ways that this available OCRAM could be used by the GPU? If not, do any application-specific uses come to mind that this OCRAM could be used for?</div><div><br></div><div>I'm hoping that perhaps this OCRAM could be used as some kind of last-level cache under various scenarios to minimize DDR access (and hopefully reduce heat generation.)</div><div><br></div><div>For my use cases, I'm texture access heavy as I'm driving GUIs that have decoded video frames in them so anything in this area would be particularly interesting.<br></div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 12, 2016 at 5:00 AM, Wladimir J. van der Laan <span dir="ltr"><<a href="mailto:laanwj@gmail.com" target="_blank">laanwj@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> Also, with regard to the OCRAM, can you specify which OCRAM was used? (Did<br>
> you stick to the 2 128KB OCRAM hanging off MX6FAST2 or was the 1 256KB<br>
> OCRAM hanging off MX6FAST3 also used? The 2 128KB OCRAM hanging off<br>
> MX6FAST2 should have the highest OCRAM performance.)<br>
<br>
I re-did these benchmarks with all the ocrams separately:<br>
<br>
[read] [ram] Speed: 113.606 MB/s<br>
[readacc] [ram] Speed: 82.522 MB/s<br>
[write] [ram] Speed: 234.779 MB/s<br>
<br>
[read] [ocram1] Speed: 87.887 MB/s<br>
[readacc] [ocram1] Speed: 70.321 MB/s<br>
[write] [ocram1] Speed: 234.779 MB/s<br>
<br>
[read] [ocram2] Speed: 123.202 MB/s<br>
[readacc] [ocram2] Speed: 91.283 MB/s<br>
[write] [ocram2] Speed: 234.776 MB/s<br>
<br>
[read] [ocram3] Speed: 123.204 MB/s<br>
[readacc] [ocram3] Speed: 91.305 MB/s<br>
[write] [ocram3] Speed: 234.778 MB/s<br>
<br>
ocramX is the number from the dtsi:<br>
- ocram1 is 256KB (this is clearly the slow one, slower than DDR ram)<br>
- ocram2 is 128KB<br>
- ocram3 is 128KB<br>
<br>
Apparently I was only measuring the slow ocram before.<br>
ocram2 and 3 do indeed read somewhat (~8%) faster than DDR.<br>
<br>
Regards,<br>
Wladimir<br>
</blockquote></div><br></div></div></div></div></div></div>