<HTML >
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">



<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY >
<DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>If you meant just non-graphic uses of a gpu, I don't 
know much in that area, but I do know of a&nbsp;very neat&nbsp;graphics related 
(but irregular on standard gpus) topic; ray tracing.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>First off, a basic idea of what ray tracing is: <A 
href="http://en.wikipedia.org/wiki/Ray_tracing">http://en.wikipedia.org/wiki/Ray_tracing</A></SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Second, for great reasons why ray tracing is useful and 
probably neccessary for the future, Dr. Kavita Bala gave a talk in 2005 
(abstract: <A 
href="http://www.acm.uiuc.edu/conference/2005/speakers.php#KavitaBalaAbstract">http://www.acm.uiuc.edu/conference/2005/speakers.php#KavitaBalaAbstract</A>&nbsp;video: 
<A 
href="http://www.acm.uiuc.edu/conference/2005/video/UIUC-ACM-RP05-Kavita-Bala.wmv">http://www.acm.uiuc.edu/conference/2005/video/UIUC-ACM-RP05-Kavita-Bala.wmv</A>).&nbsp; 
I don't recall if she explicitly says it, but applying her 
"feature"&nbsp;emphasis approach to procedurally generated textures (which 
should scale in resolution perfectly) would be a way&nbsp;for a modern engine 
to&nbsp;really shine.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>During the same conference Dr. Peter Shirley gave the 
talk "Real Time Ray Tracing on the Desktop: When and How?" (abtract: <A 
href="http://www.acm.uiuc.edu/conference/2005/speakers.php#PeteShirleyAbstract">http://www.acm.uiuc.edu/conference/2005/speakers.php#PeteShirleyAbstract</A>&nbsp;video: 
<A 
href="http://www.acm.uiuc.edu/conference/2005/video/UIUC-ACM-RP05-Peter-Shirley.wmv">http://www.acm.uiuc.edu/conference/2005/video/UIUC-ACM-RP05-Peter-Shirley.wmv</A>) 
</SPAN></FONT><FONT face=Arial size=2><SPAN class=204363513-13072007>Shirley 
decides in that video that a hardware based solution is what he should shoot 
for, and his group joins the Saarland University Graphics 
Group.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN class=204363513-13072007>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>[Note: if you&nbsp;are willing to watch both of these I 
recommend watching Dr. Shirley's first. Also, note that some videos have delayed 
starts.]</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Shortly thereafter, their groups make a number of 
advancements in ray tracing, and they created a working RPU (<A 
href="http://graphics.cs.uni-sb.de/SaarCOR/">http://graphics.cs.uni-sb.de/SaarCOR/</A>) 
on a&nbsp;FPGA board that is capable of rendering basic scenes in realtime as 
well as come out with a software solution that does roughly the same called 
OpenRT (<A href="http://www.openrt.de/">http://www.openrt.de/</A>).&nbsp; Both 
implementations scale accross multiple processors very well due to inherent 
parallelism in ray tracing.&nbsp; My guess is that a realtime engine (and a good 
game) using software ray tracing&nbsp;will help it gain popularity, but then 
dedicated boards made from the FPGA designs will take over shortly thereafter 
("High end graphics cards from NVIDIA provide 23 times more programmable 
floating point performance and 100 times more memory bandwidth as our 
prototype").</SPAN></FONT></DIV></SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Concurrently there has also been work of doing ray 
tracing on&nbsp;existing GPUs.&nbsp; Here's a neat paper&nbsp;from someone at my 
university, on structures for using a gpu for ray tracing, "Fast GPU Ray Tracing 
of Dynamic Meshes using Geometry Images" (<A 
href="http://graphics.cs.uiuc.edu/geomrt/geomrt2006.pdf">http://graphics.cs.uiuc.edu/geomrt/geomrt2006.pdf</A>).&nbsp; 
I'm unaware if he applies any of the breakthrough techniques learned from 
OpenRT's research (since it's&nbsp;very recent), but if not, that would 
certainly be a viable topic to explore within the realm of GPGPU-ish 
work.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Getting a really performance optimized haskell 
implementation of OpenRT or bindings to an existing library (</SPAN></FONT><FONT 
face=Arial size=2><SPAN class=204363513-13072007><A 
href="http://liris.cnrs.fr/~bsegovia/yacort/">http://liris.cnrs.fr/~bsegovia/yacort/</A>&nbsp;or 
</SPAN></FONT><FONT face=Arial size=2><SPAN class=204363513-13072007><A 
href="http://xfrt.sourceforge.net/">http://xfrt.sourceforge.net/</A>) would be 
very cool, especially when combined with a shader dsl, a procedural generation 
library+dsl,&nbsp;overall graphics engine, and *dreams on*.&nbsp;&nbsp;At that 
point, someone could easily&nbsp;write the world's most beautiful nethack 
with&nbsp;little artistic skill.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>-----------------</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Non-graphics related GPGPU uses:</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>ATI's Stream Computing: <A 
href="http://ati.amd.com/technology/streamcomputing/index.html">http://ati.amd.com/technology/streamcomputing/index.html</A></SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>NVIDIA's CUDA: <A 
href="http://developer.nvidia.com/object/cuda.html">http://developer.nvidia.com/object/cuda.html</A></SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Both of these allow you to code in&nbsp;"the standard C 
language" and "low level assembly language layer and driver interface".&nbsp; A 
number of open source GPGPU libraries (BrookGPU <A 
href="http://graphics.stanford.edu/projects/brookgpu/index.html">http://graphics.stanford.edu/projects/brookgpu/index.html</A>&nbsp;and 
Sh <A href="http://libsh.org/">http://libsh.org/</A>) shoot for "C++".&nbsp; One 
would think that given how&nbsp;well programming GPUs lends itself to a 
functional language,&nbsp;clearly, they&nbsp;must be&nbsp;appealing to the 
lowest common denominator, but their language for the "hardcore" is some god 
awful assembly language...</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>[defense]</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN class=204363513-13072007>I 
get that they're performance nuts, but when's the last time you wrote a large 
and meaningful&nbsp;application in assembly (not a single inlined assembly 
function) by hand, that beat using your compiler (it terms of developer+system 
execute time)? &nbsp;If you can answer,&nbsp;my guess is either&nbsp;you're 
working on a compiler,&nbsp;or yours is broken.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>[/defense]</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Writing a real language for general progamming on GPUs 
would be pretty cool, although you'd have to then think of something to do with 
it as otherwise it might be a short project (rough guess considering the 
existing work in the area).</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>Did either of these help?</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2><SPAN 
class=204363513-13072007>-- Joseph Re</SPAN></FONT></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> wp [mailto:walter1003@gmail.com] 
<BR><B>Sent:</B> Thursday, July 12, 2007 6:41 PM<BR><B>To:</B> Re, Joseph 
(IT)<BR><B>Subject:</B> Re: [Haskell-cafe] Looking for final year project - 
using Haskell,or another functional language<BR></FONT><BR></DIV>
<DIV></DIV>Hi Joseph,<BR><BR>no, I don't mind if you cc the list.<BR>I just 
skimmed the two papers on Vertigo and Renaissance. Very interesting ... and not 
just that. I have been following in the last months/years the advances of GPGPU. 
Surely a lot of people think this is nothing of practical usage, especially if 
it comes to serious mathematical computation, or is there already a GPU which 
supports double float by now? ... <BR>Something in this direction would surely 
be nice ...<BR>Can you point to some more papers like 
those?<BR>Thanks<BR>walter.<BR><BR><BR>
<DIV><SPAN class=gmail_quote>On 7/12/07, <B class=gmail_sendername>Re, Joseph 
(IT) </B>&lt;<A onclick="return top.js.OpenExtLink(window,event,this)" 
href="mailto:Joseph.Re@morganstanley.com" target=_blank> 
Joseph.Re@morganstanley.com</A>&gt; wrote:</SPAN>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
  <DIV>
  <DIV>
  <DIV dir=ltr align=left><FONT face=Arial size=2><SPAN>No problem.&nbsp; I have 
  a strong interest in the non-graphics portions of game engines and 
  simulations, but as good&nbsp;visual representations are a critical part of 
  expressing those parts, I prefer keeping my exposure to the graphics systems 
  as painless as possible.&nbsp; Therefore, while I'm by no means an expert, I 
  occasionally think/read papers&nbsp;about a graphics engine "done right" 
  and&nbsp;other&nbsp;lib/tools I only see as a means to an end (and thus not 
  something I plan on tackling myself) </SPAN></FONT><FONT face=Arial 
  size=2><SPAN>just so I'm ready when people like you come along. 
  ;)</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2><SPAN></SPAN></FONT>&nbsp;</DIV>
  <DIV><FONT face=Arial size=2><SPAN>I tried to cover a wide range 
  of&nbsp;different areas to get something that strikes your fancy, but if 
  you're especially interested in any specific area, I can provide additional 
  help (mostly in terms of papers to check out, but a few original ideas as 
  well).</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2><SPAN></SPAN></FONT>&nbsp;</DIV>
  <DIV><FONT face=Arial size=2><SPAN>[I prefer&nbsp;CCing the list if that's 
  alright with you,&nbsp;because I'm limited to certain a mailbox&nbsp;during 
  weekdays and another during nights/weekends]</SPAN></FONT></DIV>
  <DIV dir=ltr align=left><FONT face=Arial color=#0000ff 
size=2></FONT><BR></DIV>
  <DIV lang=en-us dir=ltr align=left>
  <HR>
  <FONT face=Tahoma size=2><B>From:</B> wp [mailto:<A 
  onclick="return top.js.OpenExtLink(window,event,this)" 
  href="mailto:walter1003@gmail.com" target=_blank>walter1003@gmail.com</A>] 
  <BR><B>Sent:</B> Thursday, July 12, 2007 4:11 PM<BR><B>To:</B> Re, Joseph 
  (IT)<SPAN><BR><B>Subject:</B> Re: [Haskell-cafe] Looking for final year 
  project - using Haskell,or another functional 
  language<BR></SPAN></FONT><BR></DIV><SPAN>
  <DIV></DIV>Hi Joseph,<BR><BR><BR>this is an impressive summary of ideas! 
  <BR>By far&nbsp; the best someone sent me so far.<BR>Thank you very much for 
  this. At this point I really don't mind about the formatting:)<BR>So, as I 
  like programming, but it's still the case that I am a beginner in Haskell some 
  of the ideas might be quite advanced for me; further, I never really did 
  graphics programming, but I would for sure learn a lot doing something in this 
  direction. <BR>Another company suggested a similar idea to yours, building a 
  DSL for textures and model generation ... DSL seems anyway a hot topic at the 
  moment (or is it a revival?). <BR>I am working with q/kdb+ and am particularly 
  interested in seeing that Credit Suisse is currently building a DSL embedded 
  in Haskell .... hopefully some more of these languages will follow soon:) IT 
  people would certainly have more fun doing their job, avoiding long debugging 
  session:) <BR><BR>Again, thank you very much for your 
  effort!<BR>walter</SPAN></DIV>
  <DIV>
  <HR>
  </DIV><SPAN>
  <P style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0in"><SPAN 
  style="FONT-SIZE: 8pt; COLOR: gray"><FONT face=Arial color=gray size=1>NOTICE: 
  If received in error, please destroy and notify sender. Sender does not intend 
  to waive confidentiality or privilege. Use of this email is prohibited when 
  received in error. </FONT></SPAN></P>
  <DIV></DIV></SPAN></DIV></BLOCKQUOTE></DIV><BR></DIV>
<DIV>
<HR>
</DIV>
<P CLASS="BulletedList" STYLE="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0in; mso-list: none; tab-stops: .5in"><SPAN STYLE="FONT-SIZE: 8pt; COLOR: gray; mso-bidi-font-family: Arial"><FONT FACE="Arial" COLOR="gray" SIZE="1">NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.</FONT></SPAN></P>
<DIV>
</DIV></BODY></HTML>