<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <blockquote
cite="mid:CAB6mnxL-6NmQQ7YVkShny-OzZjkO4zYc1LET+z=RLyQdg-31vA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>What version of Numpy are you comparing to? Note that
              in 1.13 you can enable some optimization in einsum, and
              the coming 1.14 makes that the default and uses CBLAS when
              possible.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    I was using 1.10.4; however, I am currently running the benchmark
    with 1.13.1 and 'optimize=True'; this, however, seems to yield even
    worse performance (see attached).<br>
    If you are interested, you can check the performance difference
    yourself via: ./benchmark/python/bechmark.sh<br>
    <blockquote
cite="mid:CAB6mnxL-6NmQQ7YVkShny-OzZjkO4zYc1LET+z=RLyQdg-31vA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>If you want to get it into Numpy, it would be worth
              checking if the existing functions can be improved before
              adding new ones.<br>
              <br>
            </div>
            <div>Note that Numpy transposition method just rearranges
              the indices, so the advantage of actual transposition is
              to have better cache performance or allow direct use of
              CBLAS. I assume TCL uses some tricks to do transposition
              in a way that is more cache friendly?<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    HPTT is a sophisticated library for tensor transpositions, as such
    it blocks the tensors such that (1) spatial locality can be
    exploited. Moreover, (2) it uses explicit vectorization to take
    advantage of the CPU's vector units.<br>
    <br>
    TCL uses the Transpose-Transpose-GEMM-Transpose approach where all
    tensors are flattened into matrices (via HPTT) and then contracted
    via GEMM; the final result is eventually folded (via HPTT) into the
    desired output tensor.<br>
    <br>
    Would it be possible to expose HPTT and TCL as optional packages
    within NumPY? This way I don't have to redo the work that I've
    already put into those libraries.<br>
    <blockquote
cite="mid:CAB6mnxL-6NmQQ7YVkShny-OzZjkO4zYc1LET+z=RLyQdg-31vA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div>Might check the license if your work uses code from a
              publication.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    As far as licenses are concerned that should not be a problem since
    I wrote to code myself and it doesn't use code from publications
    other than mine.<br>
    <br>
    Best regards, <br>
    Paul<br>
  </body>
</html>