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