@@ -30,11 +30,34 @@ jobs:
30
30
- windows-latest
31
31
arch :
32
32
- x64
33
+ pocl : [jll,]
33
34
include :
35
+ - version : ' 1.10'
36
+ os : ubuntu-latest
37
+ arch : x64
38
+ pocl : local
39
+ allow_failure : true
40
+ - version : ' 1.11'
41
+ os : ubuntu-latest
42
+ arch : x64
43
+ pocl : local
44
+ allow_failure : true
45
+ - version : ' nightly'
46
+ os : ubuntu-latest
47
+ arch : x64
48
+ pocl : local
49
+ allow_failure : true
50
+ - version : ' nightly'
51
+ os : ubuntu-latest
52
+ arch : x64
53
+ pocl : local
54
+ allow_failure : true
34
55
- version : ' nightly'
35
56
os : ubuntu-latest
36
57
arch : x64
58
+ pocl : jll
37
59
allow_failure : true
60
+
38
61
steps :
39
62
- uses : actions/checkout@v4
40
63
- uses : julia-actions/setup-julia@v2
43
66
arch : ${{ matrix.arch }}
44
67
show-versioninfo : true
45
68
- uses : julia-actions/cache@v2
46
- - run : |
69
+ - name : Checkout pocl
70
+ if : ${{ matrix.pocl == 'local' }}
71
+ uses : actions/checkout@v4
72
+ with :
73
+ repository : pocl/pocl
74
+ path : pocl
75
+ - name : Install system dependencies
76
+ if : ${{ matrix.pocl == 'local' }}
77
+ run : |
78
+ sudo apt-get update
79
+ sudo apt-get install -y build-essential cmake ninja-build pkg-config
80
+ - name : Install Julia dependencies
81
+ if : ${{ matrix.pocl == 'local' }}
82
+ run : |
83
+ touch pocl/Project.toml
84
+ julia --project=pocl --color=yes -e '
85
+ using Pkg
86
+ # unversioned
87
+ Pkg.add([
88
+ "SPIRV_Tools_jll",
89
+ "OpenCL_jll",
90
+ "OpenCL_Headers_jll",
91
+ "Hwloc_jll",
92
+ "CMake_jll",
93
+ ])
94
+ # versioned
95
+ llvm_version = "$(Base.libllvm_version.major).$(Base.libllvm_version.minor)"
96
+ Pkg.add(name="LLVM_full_jll", version=llvm_version)
97
+ Pkg.add(name="SPIRV_LLVM_Translator_jll", version=llvm_version)'
98
+ - name : Build PoCL
99
+ if : ${{ matrix.pocl == 'local' }}
100
+ run : |
101
+ julia --project=pocl --color=yes -e '
102
+ using LLVM_full_jll,
103
+ SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll,
104
+ OpenCL_jll, OpenCL_Headers_jll,
105
+ Hwloc_jll, CMake_jll
106
+ sourcedir = joinpath(@__DIR__, "pocl")
107
+ builddir = joinpath(@__DIR__, "build")
108
+ destdir = joinpath(@__DIR__, "target")
109
+ prefix = []
110
+ for jll in [SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll, OpenCL_jll,
111
+ OpenCL_Headers_jll, Hwloc_jll]
112
+ push!(prefix, jll.artifact_dir)
113
+ end
114
+ withenv("LD_LIBRARY_PATH" => joinpath(Sys.BINDIR, Base.PRIVATE_LIBDIR)) do
115
+ mkpath(builddir)
116
+ run(```cmake -B $builddir -S $sourcedir
117
+ -GNinja
118
+ -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always"
119
+ -DCMAKE_C_FLAGS="-fdiagnostics-color=always"
120
+ -DCMAKE_BUILD_TYPE=Debug
121
+ -DENABLE_TESTS:Bool=OFF
122
+ -DPOCL_DEBUG_MESSAGES:Bool=ON
123
+ -DCMAKE_INSTALL_PREFIX=$destdir
124
+ -DWITH_LLVM_CONFIG=$(LLVM_full_jll.artifact_dir)/tools/llvm-config
125
+ -DCMAKE_PREFIX_PATH="$(join(prefix, ";"))"
126
+ -DKERNELLIB_HOST_CPU_VARIANTS=distro```)
127
+ run(```$(cmake()) --build $builddir --parallel $(Sys.CPU_THREADS) --target install```)
128
+ end'
129
+ echo '[pocl_jll]' > test/LocalPreferences.toml
130
+ echo 'libpocl_path="${{ github.workspace }}/target/lib/libpocl.so"' >> test/LocalPreferences.toml
131
+ - name : " Co-develop Enzyme and KA"
132
+ run : |
47
133
julia -e '
48
134
using Pkg
49
135
withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0) do
0 commit comments