1
2 # Project Layout
3
4 ----
5
6 * [Contents](hat-00.md)
7 * House Keeping
8 * [Project Layout](hat-01-01-project-layout.md)
9 * [Building Babylon](hat-01-02-building-babylon.md)
10 * [Building HAT](hat-01-03-building-hat.md)
11 * [Enabling the CUDA Backend](hat-01-05-building-hat-for-cuda.md)
12 * Programming Model
13 * [Programming Model](hat-03-programming-model.md)
14 * Interface Mapping
15 * [Interface Mapping Overview](hat-04-01-interface-mapping.md)
16 * [Cascade Interface Mapping](hat-04-02-cascade-interface-mapping.md)
17 * Implementation Detail
18 * [Walkthrough Of Accelerator.compute()](hat-accelerator-compute.md)
19 * [How we minimize buffer transfers](hat-minimizing-buffer-transfers.md)
20
21 ---
22
23 # Primer
24
25 This is a fairly large project with Java and Native artifacts which is completely dependant
26 on the `babylon` project, and as such is initially available in a sub directory
27 called `hat` under [github.com/openjdk/babylon](https://github.com/openjdk/babylon)
28
29 ## Project Layout
30
31 ```
32 ${BABYLON_JDK}
33 ./
34 +--build/ All jars, native libs and executables
35 | +--cmake-build-debug/ All intermediate cmake artifacts
36 |
37 +--stage/
38 | +--repo/ All downloaded maven assets
39 | |
40 | +--jextract/ All jextracted files
41 | | +--opencl
42 | | +--opengl
43 | | +--cuda
44 |
45 +--hat
46 | + Script.java
47 | + run.java + @run
48 | + bld.java + @bld
49 | + clean.java + @bld
50 |
51 +--core * Note maven style layout
52 | +--src/main/java
53 | | +--hat/
54 | |
55 | +--src/main/test
56 | +--hat/
57 |
58 +--backends
59 | +--java
60 | | +--mt (*)
61 | | +--seq (*)
62 | +--jextracted
63 | | +--opencl (*)
64 | +--ffi
65 | | +--opencl (*)
66 | | +--ptx (*)
67 | | +--mock (*)
68 | | +--spirv (*)
69 | | +--cuda (*)
70 | | +--hip (*)
71 |
72 +--examples
73 | +--mandel (*)
74 | +--squares (*)
75 | +--heal (*)
76 | +--life (*)
77 | +--violajones (*)
78
79 ```