341ffb4983522012df89a95363e3e5455fe77abd
[cuda-ada.git] / README
1 CUDA/Ada
2 ========
3
4 CUDA/Ada is an Ada binding to NVIDIA's CUDA parallel computing platform and
5 programming model. This project was developed during the course of the master
6 seminar "Progam Analysis and Transformation" at the University of Applied
7 Sciences Rapperswil.
8
9
10 Licence
11 -------
12 --------------------------------------------------------------------------------
13 Copyright (C) 2011 Reto Buerki <reet@codelabs.ch>
14 Copyright (C) 2011 Adrian-Ken Rueegsegger <ken@codelabs.ch>
15 University of Applied Sciences Rapperswil
16
17 This program is free software: you can redistribute it and/or modify it under
18 the terms of the GNU General Public License as published by the Free Software
19 Foundation, either version 3 of the License, or (at your option) any later
20 version.
21 --------------------------------------------------------------------------------
22
23
24 Documentation
25 -------------
26 The paper about CUDA/Ada can be found here:
27 http://www.codelabs.ch/cuda-ada/cuda-ada-article.pdf.
28
29
30 Download
31 --------
32 The current development version of CUDA/Ada is available through its git
33 repository:
34
35   $ git clone http://git.codelabs.ch/git/cuda-ada.git
36
37 A browsable version of the repository is also available here:
38 http://git.codelabs.ch/?p=cuda-ada.git.
39
40
41 Build
42 -----
43 To compile CUDA/Ada on your system, you need to have the following software
44 installed:
45
46 * GNAT compiler:
47   http://www.gnu.org/software/gnat/gnat.html
48
49 * Ahven (Test-Framework):
50   http://ahven.stronglytyped.org/
51
52 * CUDA Toolkit for Linux 10.10:
53   http://developer.nvidia.com/cuda-downloads
54
55 * NVIDIA Developer Drivers for Linux:
56   http://developer.nvidia.com/cuda-downloads
57
58
59 Testing
60 -------
61 CUDA/Ada contains an unit test suite which can be run by entering the following
62 command:
63
64   $ make tests
65
66 Of course, you need a CUDA aware GPU for this to work.
67
68
69 Benchmarks
70 ----------
71 CUDA/Ada provides benchmarking code that measures matrix addition and
72 multiplication in Ada, CUDA/Ada and native CUDA C. The benchmarks can be run by
73 issuing the following command:
74
75   $ make perf COUNT=10
76
77 This will print the cumulated execution times of ten successive matrix
78 operations for the three different implementations.