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