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