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