<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:12pt">Thanks, Sean for the info! Can you please give me a pointer to the MIT work that you are referring to? That would be interesting to read.<br><br>-Ghassan<br><div><span><br></span></div>  <div style="font-family: arial,helvetica,sans-serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font face="Arial" size="2"> <b><span style="font-weight: bold;">From:</span></b> David Chisnall <David.Chisnall@cl.cam.ac.uk><br> <b><span style="font-weight: bold;">To:</span></b> Sean Silva <silvas@purdue.edu> <br><b><span style="font-weight: bold;">Cc:</span></b> Ghassan Shobaki <ghassan_shobaki@yahoo.com>; "llvmdev@cs.uiuc.edu" <llvmdev@cs.uiuc.edu> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, April 16, 2013 10:53 AM<br>
 <b><span style="font-weight: bold;">Subject:</span></b> Re: [LLVMdev] Power/Energy Awareness in LLVM<br> </font> </div> <div class="y_msg_container"><br>On 15 Apr 2013, at 16:03, Sean Silva <<a ymailto="mailto:silvas@purdue.edu" href="mailto:silvas@purdue.edu">silvas@purdue.edu</a>> wrote:<br><br>> See http://llvm.org/bugs/show_bug.cgi?id=6210.<br><br>Chris is correct at the coarse granularity, but there are some trades to be made at the fine.  There is some interesting work from MIT in the context of image processing kernels related to the relative costs of saving intermediates out to cache or DRAM vs recomputing them - often recomputing takes one to two orders of magnitude less power.  The tile hashing mechanism in recent MALI GPUs is designed to address the same problem: accesses to memory - especially off-chip memory - use a surprisingly large amount of power.  <br><br>Optimising for this requires quite intimate knowledge of
 the target CPU (sizes of the caches, relative costs of ALU operations to cache / DRAM accesses, and so on), but it would be very interesting if a compiler had this knowledge and could take advantage of it.  <br><br>I don't know of any work using LLVM to do this (the MIT work was based on source-to-source transformations via a C++ DSL), but it would certainly be interesting to any company that shipped a large number of mobile devices based on a small number of distinct SoCs.  If only there were such a company that regularly contributed to LLVM...<br><br>David<br><br><br></div> </div> </div>  </div></body></html>