CUBAR: Difference between revisions
No edit summary |
|||
| (7 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[File:TheG8.png|right|thumb|CUDA'd-up beyond all repair]] | [[File:TheG8.png|right|thumb|CUDA'd-up beyond all repair]] | ||
[[CUDA]] (and [http://en.wikipedia.org/wiki/GPGPU General-Purpose Graphics Processing Unit] programming in general) is rapidly becoming a mainstay of high-performance computing. As CUDA and OpenCL move off of the workstation, and into the server -- off of the console, and into the cluster -- the security of these systems will become critical parts of the associated [http://en.wikipedia.org/wiki/Trusted_computing_base trusted computing base]. Even ignoring the issue of multiuser security, the properties of isolation and (to a lesser extent) confidentiality are important for debugging, profiling and reproducibility. I've authored the | [[CUDA]] (and [http://en.wikipedia.org/wiki/GPGPU General-Purpose Graphics Processing Unit] programming in general) is rapidly becoming a mainstay of high-performance computing. As CUDA and OpenCL move off of the workstation, and into the server -- off of the console, and into the cluster -- the security of these systems will become critical parts of the associated [http://en.wikipedia.org/wiki/Trusted_computing_base trusted computing base]. Even ignoring the issue of multiuser security, the properties of isolation and (to a lesser extent) confidentiality are important for debugging, profiling and reproducibility. I've authored the CUBAR set of tools to investigate the security properties -- primarily the means and parameters of memory protection, and the division of protection between soft- and hardware -- of [[CUDA]] on NVIDIA hardware since the G80 architecture. This was essential information in the attempt to implement an open source CUDA software stack (see [[libcudest]]). | ||
See our 2010 paper, "[[Media:Cubar2010.pdf|My Other Computer is Your GPU]]." | |||
==Questions== | ==Questions== | ||
===Memory details=== | ===Memory details=== | ||
| Line 74: | Line 75: | ||
==Code== | ==Code== | ||
* GitHub project: [http://github.com/dankamongmen/ | * GitHub project: [http://github.com/dankamongmen/cubar dankamongmen:cubar] | ||
===Building=== | ===Building=== | ||
Clone the [[git]] repository. Define (either via shell export or within a new file Makefile.local): | Clone the [[git]] repository. Define (either via shell export or within a new file Makefile.local): | ||
| Line 116: | Line 117: | ||
* The [http://nouveau.freedesktop.org/wiki/IrcChatLogs Nouveau Development Companion] | * The [http://nouveau.freedesktop.org/wiki/IrcChatLogs Nouveau Development Companion] | ||
* This Japanese [http://pc.watch.impress.co.jp/docs/2008/0617/kaigai446.htm article] has some great diagrams | * This Japanese [http://pc.watch.impress.co.jp/docs/2008/0617/kaigai446.htm article] has some great diagrams | ||
* [[libcudest]], my effort to reverse engineer and reimplement libcuda.so | |||
[[CATEGORY: GPGPU]] | [[CATEGORY: GPGPU]] | ||
[[CATEGORY: Projects]] | |||