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