<div dir="auto">Hi, <div dir="auto"><br></div><div dir="auto">I did a similar implementation in my gsoc project covering most of the operations..</div><div dir="auto"><br></div><div dir="auto">But a small diference in my implementation that running the executable of each operation produces the file containing the benchmarking data directly</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Fady Essam</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 12, 2018, 4:08 AM Stefan Seefeld via ublas &lt;<a href="mailto:ublas@lists.boost.org">ublas@lists.boost.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>Hi there,</p>
    <p>I have been looking at the existing benchmarks, to see how to
      extend them to cover more functions as well as alternative
      implementations. The existing benchmarks have a few shortcomings
      that I would like to address:</p>
    <p>* a single benchmark executable will measure a range of
      operations, and write output to stdout. It&#39;s impossible to
      benchmark individual operations</p>
    <p>* operations are measured with a single set of inputs. It would
      be very helpful to be able to run operations on a range of inputs,
      to see how they perform over a variety of problem sizes.</p>
    <p>* the generated output should be easily machine-readable, so it
      can be post-processed into benchmark reports (including
      performance charts).</p>
    <p><br>
    </p>
    <p>(The above will be particularly useful as we are preparing PRs to
      include support for OpenCL backends (work that has been done by
      Fady Essam as a GSoC project).<br>
    </p>
    <p><br>
    </p>
    <p>I have attempted to prototype a few new benchmarks (matrix-matrix
      products, as well as matrix-vector products, for a variety of
      value-types), together with a simple script to produce graphs. For
      example, the attached plot was produced running:</p>
    <p>```<br>
    </p>
    <p> .../mm_prod -t float &gt; mm_prod_float.txt</p>
    <p>.../mm_prod -t double &gt; mm_prod_double.txt</p>
    <p>.../mm_prod -t fcomplex &gt; mm_prod_fcomplex.txt</p>
    <p>.../mm_prod -t dcomplex &gt; mm_prod_dcomplex.txt</p>
    <p>plot.py mm_prod_*.txt</p>
    <p>```<br>
    </p>
    <p>I&#39;d appreciate any feedback, both on the general concepts, as
      well as the code, which is here: <a class="m_-7577290477398864347moz-txt-link-freetext" href="https://github.com/boostorg/ublas/pull/57" target="_blank" rel="noreferrer">https://github.com/boostorg/ublas/pull/57</a><br>
    </p>
    <p>Thanks,<br>
    </p>
    <div class="m_-7577290477398864347moz-signature"><br>
      <div class="m_-7577290477398864347moz-signature"><img src="cid:part2.46400B7C.D0CDDC8B@seefeld.name" alt="Stefan" height="45" width="73"><br>
        <pre>-- 

      ...ich hab&#39; noch einen Koffer in Berlin...
    </pre>
      </div>
    </div>
  </div>

_______________________________________________<br>
ublas mailing list<br>
<a href="mailto:ublas@lists.boost.org" target="_blank" rel="noreferrer">ublas@lists.boost.org</a><br>
<a href="https://lists.boost.org/mailman/listinfo.cgi/ublas" rel="noreferrer noreferrer" target="_blank">https://lists.boost.org/mailman/listinfo.cgi/ublas</a><br>
Sent to: <a href="mailto:fadyesam1996@gmail.com" target="_blank" rel="noreferrer">fadyesam1996@gmail.com</a><br>
</blockquote></div>