<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 15, 2017 at 10:26 AM, Paul <span dir="ltr"><<a href="mailto:pavdev@gmx.de" target="_blank">pavdev@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I recently spent some time adding python interfaces to my tensor libraries:<br>
  * Tensor Contraction Library (TCL): <a href="https://github.com/springer13/tcl" rel="noreferrer" target="_blank">https://github.com/springer13/<wbr>tcl</a><br>
  * Tensor Transposition Library (HPTT): <a href="https://github.com/springer13/hptt" rel="noreferrer" target="_blank">https://github.com/springer13/<wbr>hptt</a><br>
<br>
Both libraries tend to give very significant speedups over what is<br>
currently offered by NumPY; Speedups<br>
typically range from 5x - 20x w.r.t. HPTT and >>20x for TCL (see<br>
attached, Host: 2x Intel Haswell-EP E5-2680 v3 (24 threads)).<br>
Thus, I was curious if some of you would benefit from those speedups and<br>
if you want it to<br>
be integrated into NumPY.<br>
<br>
The HPTT and TCL libraries are respectively similar to numpy.transpose()<br>
and numpy.einsum().<br>
<br>
I welcome you to give the packages a try and see if they can help you to<br>
speedup some of your tensor-related operations.<br>
<br>
Finally: Which steps would be required to integrate those libraries into<br>
NumPY? Which problems do you anticipate?<br>
<br></blockquote><div><br></div><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><br></div><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><br></div><div>Might check the license if your work uses code from a publication.<br></div><div><br></div><div>Chuck<br></div></div></div></div>