On Tue, Oct 20, 2009 at 11:44 PM, Mathieu Blondel <math...@mblondel.org>wrote:
> Hello, > > About one year ago, a high-level, objected-oriented SIMD API was added > to Mono. For example, there is a class Vector4f for vectors of 4 > floats and this class implements methods such as basic operators, > bitwise operators, comparison operators, min, max, sqrt, shuffle > directly using SIMD operations. You can have a look at the following > pages for further details: > > http://tirania.org/blog/archive/2008/Nov-03.html (blog post) > http://go-mono.com/docs/index.aspx?tlin...@n%3amono.simd (API reference) > > It seems to me that such an API would possibly be a great fit in Numpy > too. It would also be possible to add classes that don't directly map > to SIMD types. For example, Vector8f can easily be implemented in > terms of 2 Vector4f. In addition to vectors, additional API may be > added to support operations on matrices of fixed width or height. > > I search the archives for similar discussions but I only found a > discussion about memory-alignment so I hope I am not restarting an > existing discussion here. Memory-alignment is an import related issue > since non-aligned movs can tank the performance. > > Any thoughts? I don't know the Numpy code base yet but I'm willing to > help if such an effort is started. > > The licenses look all hodge-podge: - The C# compiler is dual-licensed under the MIT/X11 license and the GNU General Public License<http://www.opensource.org/licenses/gpl-license.html> (*http://www.opensource.org/licenses/gpl-license.html*) (GPL). - The tools are released under the terms of the GNU General Public License <http://www.opensource.org/licenses/gpl-license.html> (* http://www.opensource.org/licenses/gpl-license.html*) (GPL). - The runtime libraries are under the GNU Library GPL 2.0<http://www.gnu.org/copyleft/library.html#TOC1> (*http://www.gnu.org/copyleft/library.html#TOC1*) (LGPL 2.0). - The class libraries are released under the terms of the MIT X11<http://www.opensource.org/licenses/mit-license.html> (*http://www.opensource.org/licenses/mit-license.html*) license. - ASP.NET MVC and ASP.NET AJAX client software are released by Microsoft under the open source Microsoft Permissive License<http://www.opensource.org/licenses/ms-pl.html> (*http://www.opensource.org/licenses/ms-pl.html*). However, if the good stuff is in the class libraries, that looks OK. But that still leaves it in C#, no? You could have a looksie to see how it would fit into, say, Cython. I don't know where it would go in numpy, maybe some of the vector bits would be suitable for some generalized ufuncs. Apart from that, I believe ATLAS can already make use of SIMD, but I have no idea how far it goes in using the full feature set. Chuck
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion