<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Question about practical DDR bandwidth for IMX8MP in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1911930#M226380</link>
    <description>&lt;P&gt;Hi Aldo,,&lt;/P&gt;&lt;P&gt;thanks for your response. Maybe I didn't make myself clear in the previous post. I already used perf stat with axid events and the integrated metrics to obtain the graph.&lt;/P&gt;&lt;P&gt;In specific, I used the following command:&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;perf&lt;/SPAN&gt; &lt;SPAN&gt;stat&lt;/SPAN&gt; &lt;SPAN&gt;-I&lt;/SPAN&gt; &lt;SPAN&gt;1000 -a&lt;/SPAN&gt; \&lt;BR /&gt;&lt;SPAN&gt;    -e&lt;/SPAN&gt; &lt;SPAN&gt;imx8_ddr0/axid-read,axi_mask=0xffff/,imx8_ddr0/axid-write,axi_mask=0xffff/&lt;/SPAN&gt; \&lt;BR /&gt;&lt;SPAN&gt;    -M&lt;/SPAN&gt; &lt;SPAN&gt;imx8mp_ddr_read.all,imx8mp_ddr_write.all&lt;/SPAN&gt;&lt;/PRE&gt;&lt;DIV&gt;&lt;SPAN&gt;Using the metrics &lt;STRONG&gt;imx8mp_ddr_read.all&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;imx8mp_ddr_write.all&lt;/STRONG&gt; gives me the result in kB, but when I use&amp;nbsp;your suggested&amp;nbsp;&lt;STRONG&gt;bandwidth_usage&lt;/STRONG&gt;, I only receive percentages. This isn't optimal for me and I would have the values in kB if possible.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BTW: In my case, the metric is called &lt;STRONG&gt;imx8mp_bandwidth_usage.lpddr4&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;PRE&gt;perf stat -I 1000 -a -M imx8mp_bandwidth_usage.lpddr4&lt;/PRE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best regards&lt;/DIV&gt;&lt;DIV&gt;Markus&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 19 Jul 2024 07:17:08 GMT</pubDate>
    <dc:creator>mkeey</dc:creator>
    <dc:date>2024-07-19T07:17:08Z</dc:date>
    <item>
      <title>Question about practical DDR bandwidth for IMX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1910037#M226248</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I'm currently in the process of evaluating the theoretical and maximal DDR bandwidth of the i.MX 8M Plus processor. My setup is the IMX8MP-EVK evaluation board, running a Yocto Linux with kernel 6.1.55.&lt;/P&gt;&lt;P&gt;The board is equipped with 6GB of LPDDR4, the DDR core clock is set to 1GHz. In my understanding, the actual clock of the DDR is &lt;A href="https://community.nxp.com/t5/i-MX-Processors/Change-LPDDR4-operating-frequency/m-p/862861" target="_self"&gt;doubled&lt;/A&gt; (=2GHz), which leads to a theoretical data rate of 4000MT/s. With the 32-bit memory interface, this leads to a&amp;nbsp;&lt;STRONG&gt;theoretical&lt;/STRONG&gt; bandwidth of 4000MT/s * 4B = 16 GB/s.&lt;/P&gt;&lt;P&gt;When it comes to the&amp;nbsp;&lt;STRONG&gt;practical&lt;/STRONG&gt; bandwidth, I&amp;nbsp;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/Question-about-DDR-memory-bandwidth-of-i-MX8MNano/m-p/1044909" target="_self"&gt;read&lt;/A&gt;&amp;nbsp;that the real bandwidth is only half of this value. To get some real numbers, I used&amp;nbsp;&lt;STRONG&gt;perf stat&lt;/STRONG&gt; and some integrated metrics (&lt;SPAN&gt;imx8mp_ddr_read.all,imx8mp_ddr_write.all&lt;/SPAN&gt;&lt;SPAN&gt;) to obtain the following results while running a stresstest with bandwidth64:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ddr_stresstest.png" style="width: 455px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/288813iA6CFF08709B18635/image-dimensions/455x236?v=v2" width="455" height="236" role="button" title="ddr_stresstest.png" alt="ddr_stresstest.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I have the following questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Are these numbers real and represent the actual bandwidth that can be achieved on such a system?&lt;/LI&gt;&lt;LI&gt;What could be the reason that read results are much lower than write results? In my understanding, it should be the other way around.&lt;/LI&gt;&lt;LI&gt;For the total bandwidth, do I have to add "read" and "write" together or is this accelerated in hardware?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Markus&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jul 2024 19:56:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1910037#M226248</guid>
      <dc:creator>mkeey</dc:creator>
      <dc:date>2024-07-16T19:56:21Z</dc:date>
    </item>
    <item>
      <title>Re: Question about practical DDR bandwidth for IMX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1911610#M226356</link>
      <description>&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;You may use Perf tool for the test.&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;Cycle events is not recommended to use in 8MP and we use axid events instead. But we still use the metric feature to do the test, which will call the axid events internally.&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;perf list metric&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;BR /&gt;The supported metric feature is imx8mp-lpddr4-bandwidth-usage.&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;perf stat -a -I 1000 -M imx8mp-lpddr4-bandwidth-usage&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Thu, 18 Jul 2024 19:41:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1911610#M226356</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2024-07-18T19:41:33Z</dc:date>
    </item>
    <item>
      <title>Re: Question about practical DDR bandwidth for IMX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1911930#M226380</link>
      <description>&lt;P&gt;Hi Aldo,,&lt;/P&gt;&lt;P&gt;thanks for your response. Maybe I didn't make myself clear in the previous post. I already used perf stat with axid events and the integrated metrics to obtain the graph.&lt;/P&gt;&lt;P&gt;In specific, I used the following command:&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;perf&lt;/SPAN&gt; &lt;SPAN&gt;stat&lt;/SPAN&gt; &lt;SPAN&gt;-I&lt;/SPAN&gt; &lt;SPAN&gt;1000 -a&lt;/SPAN&gt; \&lt;BR /&gt;&lt;SPAN&gt;    -e&lt;/SPAN&gt; &lt;SPAN&gt;imx8_ddr0/axid-read,axi_mask=0xffff/,imx8_ddr0/axid-write,axi_mask=0xffff/&lt;/SPAN&gt; \&lt;BR /&gt;&lt;SPAN&gt;    -M&lt;/SPAN&gt; &lt;SPAN&gt;imx8mp_ddr_read.all,imx8mp_ddr_write.all&lt;/SPAN&gt;&lt;/PRE&gt;&lt;DIV&gt;&lt;SPAN&gt;Using the metrics &lt;STRONG&gt;imx8mp_ddr_read.all&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;imx8mp_ddr_write.all&lt;/STRONG&gt; gives me the result in kB, but when I use&amp;nbsp;your suggested&amp;nbsp;&lt;STRONG&gt;bandwidth_usage&lt;/STRONG&gt;, I only receive percentages. This isn't optimal for me and I would have the values in kB if possible.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BTW: In my case, the metric is called &lt;STRONG&gt;imx8mp_bandwidth_usage.lpddr4&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;PRE&gt;perf stat -I 1000 -a -M imx8mp_bandwidth_usage.lpddr4&lt;/PRE&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best regards&lt;/DIV&gt;&lt;DIV&gt;Markus&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 19 Jul 2024 07:17:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1911930#M226380</guid>
      <dc:creator>mkeey</dc:creator>
      <dc:date>2024-07-19T07:17:08Z</dc:date>
    </item>
    <item>
      <title>Re: Question about practical DDR bandwidth for IMX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1953590#M228385</link>
      <description>For all the users with similar questions:&lt;BR /&gt;&lt;BR /&gt;In the end, I managed to find a solution by myself. It seems that the original benchmark analysis and the graph from the first post give incorrect results. I'm not sure how the high numbers were calculated (maybe a counter overflow), but they are not correct.&lt;BR /&gt;&lt;BR /&gt;The metric suggested from AldoG (`imx8mp_bandwidth_usage.lpddr4`) does nothing more than divide the sum of `imx8mp_ddr_read.all` and `imx8mp_ddr_write.all` by a theoretical bandwidth of 16 GByte/s. After some additional testing, I would say that the practical DDR bandwidth of the system is around 3.5 to 4.0 GByte/s.&lt;BR /&gt;&lt;BR /&gt;If you want to measure the contribution of individual components on bandwidth utilization, you can call `perf` with a list of metrics by component, e.g.:&lt;BR /&gt;&lt;BR /&gt;`perf stat -I 1000 -M imx8mp_ddr_read.isp1,imx8mp_ddr_write.isp1,imx8mp_ddr_read.dewarp,imx8mp_ddr_write.dewarp,imx8mp_ddr_read.vpu3,imx8mp_ddr_write.vpu3 -a &amp;lt;SOME_COMMAND&amp;gt;`&lt;BR /&gt;</description>
      <pubDate>Thu, 12 Sep 2024 15:17:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Question-about-practical-DDR-bandwidth-for-IMX8MP/m-p/1953590#M228385</guid>
      <dc:creator>mkeey</dc:creator>
      <dc:date>2024-09-12T15:17:56Z</dc:date>
    </item>
  </channel>
</rss>

