Are you also planning a LLVM backend for ghc, in a general sense, or just for the accelerated work you&#39;re doing? It seems to me that ghc itself could be well served with a LLVM backend, especially if one relies on the JIT mode. That could help identify code paths in the core and runtime that are infrequently used, further optimizing ghc&#39;s overall performance.<br>
<br>That&#39;s the gist behind Latter&#39;s work to accelerate the OpenGL stack on Mac OS. The LLVM JIT determines which code paths are actually taken, generating code for only those paths.<br><br><br>-scooter<br><br>PS: I do stand behind my assertion regarding the Cell. I&#39;m the CellSPU backend hacker for LLVM and I&#39;ve pretty much stopped work on it because IBM has more or less killed the chip.<br>
<br><div class="gmail_quote">On Thu, Feb 4, 2010 at 3:07 PM, Manuel M T Chakravarty <span dir="ltr">&lt;<a href="mailto:chak@cse.unsw.edu.au">chak@cse.unsw.edu.au</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Felipe Lessa:<br>
&gt;&gt; I would suggest that any GSoC project in this space should be based<br>
&gt;&gt; on D.A.Accelerate (rather than DPH), simply because the code base is<br>
&gt;&gt; much smaller and more accessible.  There is not much point in<br>
&gt;&gt; writing a CUDA backend, as we already have a partially working one<br>
&gt;&gt; that we are going to release in due course.  However, I repeatedly<br>
&gt;&gt; had people asking for an OpenCL backend.  So, there appears to be<br>
&gt;&gt; some demand for that (and it&#39;s the right thing to do, given that<br>
&gt;&gt; CUDA is tied to a single company).  An OpenCL backend for<br>
&gt;&gt; D.A.Accelerate also appears to be in the scope of what a good coder<br>
&gt;&gt; can achieve in the timeframe of a GSoC project.  (To be precise, I<br>
&gt;&gt; think, a good coder can implement a working backend in that<br>
&gt;&gt; timeframe, but it will probably require more work to generate well<br>
&gt;&gt; optimised code.)<br>
&gt;<br>
&gt; Thanks, that&#39;s very interesting.  What about an LLVM backend, would it<br>
&gt; be useful?  Perhaps it would be possible to use its vector operations<br>
&gt; to use SIMD instructions of modern CPUs (I think GHC isn&#39;t there yet,<br>
&gt; right?).  This is just a thought :).<br>
<br>
I&#39;m currently implementing an LLVM backend.  I&#39;m not planning on using SIMD instructions in the first version, but it is an interesting idea for when a basic LLVM works.<br>
<font color="#888888"><br>
Manuel<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Glasgow-haskell-users mailing list<br>
<a href="mailto:Glasgow-haskell-users@haskell.org">Glasgow-haskell-users@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users" target="_blank">http://www.haskell.org/mailman/listinfo/glasgow-haskell-users</a><br>
</div></div></blockquote></div><br>