title: I cannot get a GPU emulator working
body: <p>I would be interested to try a GPU emulator, but I have tried to use Multi2Sim, GPGPU-sim, and Ocelot, and for each of these three emulators I get a problem for which it seems hard to find a solution on the internet. I will describe the problem I have with each emulator and maybe you can help. First of all, to give you some detailed context, I am using Ubuntu 12.04 LTS.</p>
  
  <p>Multi2Sim says that it is not compatible with 64-bit and so you should compile for 32-bit. If I compile CUDA code for 32-bit, then when I run the compiled executable, I get the error message "CUDA driver version is insufficient for CUDA runtime version." If I compile OpenCL code for 32-bit, then when I run the compiled executable, I find that the function clGetPlatformIDs does not give me the Nvidia OpenCL platform that I get when I compile for 64-bit.</p>
  
  <p>The documentation for GPGPU-sim says:</p>
  
  <blockquote>
    <p>We have tested OpenCL on GPGPU-Sim using NVIDIA driver version 256.40
    <a href="http://developer.download.nvidia.com/compute/cuda/3_1/drivers/devdriver_3.1_linux_64_256.40.run" rel="nofollow">http://developer.download.nvidia.com/compute/cuda/3_1/drivers/devdriver_3.1_linux_64_256.40.run</a>
    Note the most recent version of the NVIDIA driver produces PTX that is incompatible with this version of GPGPU-Sim.</p>
  </blockquote>
  
  <p>I have NVIDIA Driver Version 295.49. When I look in "Additional Drivers" from "System Settings" I see two things listed: "NVIDIA accelerated graphics driver (version current) [Recommended]" and "NVIDIA accelerated graphics driver (post-release updates) (version current-updates)". The first one was activated, so I clicked Remove and then the second one automatically became activated. So I decided to just try installing version 256.40 and I got this error message which simply intimidates me:</p>
  
  <pre><code>ERROR: If you are using a Linux 2.4 kernel, please make sure  
         you either have configured kernel sources matching your
         kernel or the correct set of kernel headers installed  
         on your system.                                        
  
         If you are using a Linux 2.6 kernel, please make sure  
         you have configured kernel sources matching your kernel
         installed on your system. If you specified a separate  
         output directory using either the "KBUILD_OUTPUT" or   
         the "O" KBUILD parameter, make sure to specify this    
         directory with the SYSOUT environment variable or with 
         the equivalent nvidia-installer command line option.   
  
         Depending on where and how the kernel sources (or the  
         kernel headers) were installed, you may need to specify
         their location with the SYSSRC environment variable or 
         the equivalent nvidia-installer command line option.   
  </code></pre>
  
  <p>When I try to build Ocelot, I get the following, even though I followed the instructions "To pull from the LLVM SVN and build":</p>
  
  <pre><code>ocelot/ocelot/ir/implementation/ExternalFunctionSet.cpp:27:36: fatal error: llvm/Target/TargetData.h: No such file or directory
  </code></pre>