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