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 ```