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