<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Miguel de Icaza's blog - Latest Comments in Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://migueldeicaza.disqus.com/</link><description></description><atom:link href="https://migueldeicaza.disqus.com/monos_simd_support_making_mono_safe_for_gaming_miguel_de_icaza/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 30 Sep 2010 11:08:38 -0000</lastBuildDate><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-82387762</link><description>&lt;p&gt;A few attempts have been done.&lt;/p&gt;&lt;p&gt;Look for the Brahma project, and the LINQ to GPU.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">migueldeicaza</dc:creator><pubDate>Thu, 30 Sep 2010 11:08:38 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-82302963</link><description>&lt;p&gt;i don't know if it was discussed or propposed but I once had an idea of writing shaders directly in C#/mono. We compile it as it were a usual C# function and then during startup we invoke CECIL or similar and translate the bytecode into the output shader program (glsl or hlsl). Translation is very straightford &amp;amp; simple.&lt;br&gt;I had a working prototype but i'm not that into shaders so it've remained a prototype unfortunately.&lt;br&gt;Just wanted to share an idea of how mono could be useful.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Isaacschnippelson</dc:creator><pubDate>Thu, 30 Sep 2010 01:48:23 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-37242047</link><description>&lt;p&gt;The method signature given as&lt;/p&gt;&lt;p&gt;Vector4f static operator + (Vector3f a, Vector3f b)&lt;/p&gt;&lt;p&gt;should be&lt;/p&gt;&lt;p&gt;Vector4f static operator + (Vector4f a, Vector4f b)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Timwi</dc:creator><pubDate>Sat, 27 Feb 2010 12:03:50 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-9801782</link><description>&lt;p&gt;The good news is: we are taking patches.&lt;/p&gt;&lt;p&gt;Please design the feature, code it, and post it to the mailing list, we will be happy to review it/integrate it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">migueldeicaza</dc:creator><pubDate>Fri, 22 May 2009 14:09:59 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-9787575</link><description>&lt;p&gt;Yikes! I support the idea, but it makes one somewhat dependent on using Mono's vector structures instead of one's own. I'd like to see an attribute that can be applied to custom vector op methods, and let the Mono JIT check that there's a vector op going on, and optimize that with SIMD.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Medyum</dc:creator><pubDate>Fri, 22 May 2009 07:12:55 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-8804058</link><description>&lt;p&gt;Great news! We are already evaluating how OpenTK can best advantage of Mono&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Medyum</dc:creator><pubDate>Wed, 29 Apr 2009 04:37:56 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-8804051</link><description>&lt;p&gt;These are *great* news!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Medyum</dc:creator><pubDate>Wed, 29 Apr 2009 04:37:26 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-8804042</link><description>&lt;p&gt;You can either use our mailing lists, our irc chat bots or just email me....&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Medyum</dc:creator><pubDate>Wed, 29 Apr 2009 04:36:45 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-8022496</link><description>&lt;p&gt;It might be worth taking a look here: &lt;a href="http://ds9a.nl/gcc-simd/example.html" rel="nofollow noopener" target="_blank" title="http://ds9a.nl/gcc-simd/example.html"&gt;http://ds9a.nl/gcc-simd/exa...&lt;/a&gt; and compiling your code for your chipset, and seeing how fast you can get it down to in C++.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GeneticGenesis</dc:creator><pubDate>Thu, 09 Apr 2009 20:41:34 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-7662363</link><description>&lt;p&gt;Hello!&lt;/p&gt;&lt;p&gt;Why are the Vector structs are not Serializeable?&lt;br&gt;(I've tried to write a dotNet to Mono Runtime Bridge using .Net Remoting, which is working but I cant use e.g. Vector2d directly)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Großmann</dc:creator><pubDate>Tue, 31 Mar 2009 04:05:44 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-7013276</link><description>&lt;p&gt;Hey Miguel, this is pretty cool -- I was talking about doing the same thing for JS with Tracemonkey, and someone pointed me to this.  It's a great way to expose some simd stuff direct to developers without asking them to play auto-vectorization roulette :-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vladimir Vukicevic</dc:creator><pubDate>Mon, 09 Mar 2009 07:16:20 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-6202516</link><description>&lt;p&gt;It is a pity that the Simd-Types are not serializable. Besides this i love it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">marwee</dc:creator><pubDate>Thu, 12 Feb 2009 03:32:37 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5530106</link><description>&lt;p&gt;Briefly speaking, I could win 100% of speed for mono with -O=&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mp3 indir</dc:creator><pubDate>Sun, 25 Jan 2009 08:07:25 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5460049</link><description>&lt;p&gt;nice ;}&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">radioman</dc:creator><pubDate>Thu, 22 Jan 2009 07:25:37 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5459335</link><description>&lt;p&gt;The C++ program was compiled in Debug Mode. It's not a fair comparison. Here is a benchmark on Windows XP with C++ program compiled with MinGW 4.3.2 and Visual Studio 2005.&lt;br&gt;&lt;a href="http://cristianadam.blogspot.com/2009/01/mono-22.html" rel="nofollow noopener" target="_blank" title="http://cristianadam.blogspot.com/2009/01/mono-22.html"&gt;http://cristianadam.blogspo...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">drac</dc:creator><pubDate>Thu, 22 Jan 2009 05:21:13 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5387813</link><description>&lt;p&gt;Some will, some will not.&lt;/p&gt;&lt;p&gt;The best thing is to discuss this on the mailing list or check our SVN release.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">migueldeicaza</dc:creator><pubDate>Tue, 20 Jan 2009 04:38:53 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5254344</link><description>&lt;p&gt;Hello, Miguel.&lt;/p&gt;&lt;p&gt;I am very interested in suggested SIMD support and just finished speed measurments in my particular environment: SuSE 11 running in VurtualBox 2.1. Detailed description of my results is in the following post: &lt;a href="http://kyta.spb.ru/monosimd.aspx" rel="nofollow noopener" target="_blank" title="http://kyta.spb.ru/monosimd.aspx"&gt;http://kyta.spb.ru/monosimd...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Briefly speaking, I could win 100% of speed for mono with -O=simd switch, and at the same time I could loose 50% of speed for mono with -O=-simd switch.&lt;/p&gt;&lt;p&gt;That is not what I expected from your presentation, but 100% are still 100%... The other point is VirtualMachine environment. I think this could break everything. I will try to execute this snippet in "real" environment asap.&lt;/p&gt;&lt;p&gt;Best Regards,&lt;br&gt;Anton.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anton</dc:creator><pubDate>Sat, 17 Jan 2009 22:19:13 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5235251</link><description>&lt;p&gt;I have a lot of logarithm/exponent calls. Will Mono.Simd optimise them?&lt;/p&gt;&lt;p&gt;Do you plan to rewrite advanced functions with SIMD support? Ln, Exp, Sqrt, Pow just to mention some of them...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anton</dc:creator><pubDate>Sat, 17 Jan 2009 07:03:41 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5231062</link><description>&lt;p&gt;So why does the figure say "C++ (3D doubles) ?&lt;/p&gt;&lt;p&gt;And why do you use a for-loop to compute the sum of two vectors? The compiler better has a good loop-unroll functionality because otherwise it makes the comparison even more meaningless.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mungolf</dc:creator><pubDate>Sat, 17 Jan 2009 00:02:10 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-5231078</link><description>&lt;p&gt;Anyway, nice job on the mono part&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mungolf</dc:creator><pubDate>Sat, 17 Jan 2009 00:01:46 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-4396323</link><description>&lt;p&gt;I think that a standard implementation of BLAS for standard Mono/.NET arrays will be a very useful.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Yoav HaCohen</dc:creator><pubDate>Sun, 14 Dec 2008 06:05:07 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-4385983</link><description>&lt;p&gt;What about some more general functions, that can perform operations on any two primitives arrays of the same type and size? This will save the repeated coding task of finding the best combination of SIMD operations, corner cases, etc, and will greatly help to code filters (say, the very commonly used median filter).&lt;/p&gt;&lt;p&gt;Itai.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Itai Bar-Haim</dc:creator><pubDate>Sat, 13 Dec 2008 07:34:45 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-4308133</link><description>&lt;p&gt;Yikes! I support the idea, but it makes one somewhat dependent on using Mono's vector structures instead of one's own. I'd like to see an attribute that can be applied to custom vector op methods, and let the Mono JIT check that there's a vector op going on, and optimize that with SIMD.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Quack quack</dc:creator><pubDate>Wed, 10 Dec 2008 08:48:57 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-4122441</link><description>&lt;p&gt;yes, the code is available from trunk, from the mono-2-2 branch and from the Mono 2.2 preview packages that we shipped a week or two ago.&lt;/p&gt;&lt;p&gt;When we showed the code at the PDC the code was already live, and the performance tests were all done with the code that was available at the time on SVN.   We just did not go out of our way to advertise it.&lt;/p&gt;&lt;p&gt;Notice that improvements to the API and to the JIT code since the PDC have improved Mono's performance on these tests.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">migueldeicaza</dc:creator><pubDate>Tue, 02 Dec 2008 00:57:57 -0000</pubDate></item><item><title>Re: Mono's SIMD Support: Making Mono safe for Gaming - Miguel de Icaza</title><link>http://tirania.org/blog/archive/2008/Nov-03.html#comment-4122427</link><description>&lt;p&gt;All of the information is in the source code, it contains makefiles and invocation parameters.&lt;/p&gt;&lt;p&gt;The source code for C# is just a straight forward port with no tuning or performance improvements attempted.   It could also be tuned up and improved (for example, using unsafe code would boost its performance).&lt;/p&gt;&lt;p&gt;As I mentioned in the talk and elsewhere, C++ SIMD intrinsics would give you a major boost over plain C++ just like it did for Mono.   But our research direction was on improving Mono to the point that it would satisfy the needs of game developers that would like the safety and productivity of a managed language without having to pay the high price of going to C++.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">migueldeicaza</dc:creator><pubDate>Tue, 02 Dec 2008 00:56:30 -0000</pubDate></item></channel></rss>