1c5c8d916fdf33abbc56128f71344c5726290b06
[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 "Program Analysis and Transformation" at the University of Applied
7 Sciences Rapperswil.
8
9
10 Licence
11 -------
12 --------------------------------------------------------------------------------
13 Copyright (C) 2011, 2012 Reto Buerki <reet@codelabs.ch>
14 Copyright (C) 2011, 2012 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
33 Release version
34 ~~~~~~~~~~~~~~~
35 The current release version of CUDA/Ada is available at
36 http://www.codelabs.ch/download.
37
38 Verify a Release
39 ~~~~~~~~~~~~~~~~
40 To verify the integrity and authenticity of the distribution tarball, import
41 the key http://www.codelabs.ch/keys/0x3DC359DEpub.asc and type the following
42 command:
43
44   $ gpg --verify libcudaada-{version}.tar.bz2.sig
45
46 The key fingerprint of the public key ('0x3DC359DE') is:
47
48   Key fingerprint = 752C 4EBC 115D 5EAD 75F7  0F34 A0AE 8AD7 3DC3 59DE
49
50 Development version
51 ~~~~~~~~~~~~~~~~~~~
52 The current development version of CUDA/Ada is available through its git
53 repository:
54
55   $ git clone http://git.codelabs.ch/git/cuda-ada.git
56
57 A browsable version of the repository is also available here:
58 http://git.codelabs.ch/?p=cuda-ada.git.
59
60
61 Build
62 -----
63 To compile CUDA/Ada on your system, you need to have the following software
64 installed:
65
66 * GNAT compiler:
67   http://www.gnu.org/software/gnat/gnat.html
68
69 * Ahven (Test-Framework):
70   http://ahven.stronglytyped.org/
71
72 * CUDA Toolkit for Linux 10.10:
73   http://developer.nvidia.com/cuda-downloads
74
75 * NVIDIA Developer Drivers for Linux:
76   http://developer.nvidia.com/cuda-downloads
77
78
79 Testing
80 -------
81 CUDA/Ada contains an unit test suite which can be run by entering the following
82 command:
83
84   $ make tests
85
86 Of course, you need a CUDA aware GPU for this to work.
87
88
89 Benchmarks
90 ----------
91 CUDA/Ada provides benchmarking code that measures matrix addition and
92 multiplication in Ada, CUDA/Ada and native CUDA C. The benchmarks can be run by
93 issuing the following command:
94
95   $ make perf COUNT=20
96
97 This will print the cumulated execution times of twenty successive matrix
98 operations for the different implementations.