https://github.com/JuliaLang/julia
Revision d47cbf65c520142bd6926f28aee8ba2a22bf0140 authored by Valentin Churavy on 13 April 2024, 01:22:51 UTC, committed by GitHub on 13 April 2024, 01:22:51 UTC
For GPUCompiler we would like to support a native on disk cache of LLVM
IR.
One of the longstanding issues has been the cache invalidation of such
an on disk cache.

With #52233 we now have an integrated cache for the inference results
and we can rely
on `CodeInstance` to be stable across sessions. Due to #52119 we can
also rely on the
`objectid` to be stable. 

My inital thought was to key the native disk cache in GPUCompiler on the
objectid of
the corresponding CodeInstance (+ some compilation parameters).

While discussing this with @rayegun yesterday we noted that having a
CodeInstance with
the same objectid might not be enough provenance. E.g we are not
gurantueed that the
CodeInstance is from the same build artifact and the same precise source
code.

For the package images we are tracking this during loading and validate
all contents
at once, and we keep explicitly track of the provenance chain.

This PR adds a lookup up table where we map from "external_blobs" e.g.
loaded images,
to the corresponding top module of each image, and uses this to
determine the
build_id of the package image.
1 parent be3bc9a
History
Tip revision: d47cbf65c520142bd6926f28aee8ba2a22bf0140 authored by Valentin Churavy on 13 April 2024, 01:22:51 UTC
Allow for querying of build_id from objects (#53943)
Tip revision: d47cbf6
File Mode Size
checksums
patches
tools
valgrind
.gitignore -rw-r--r-- 26 bytes
JuliaSyntax.mk -rw-r--r-- 677 bytes
JuliaSyntax.version -rw-r--r-- 244 bytes
Makefile -rw-r--r-- 6.1 KB
blastrampoline.mk -rw-r--r-- 2.1 KB
blastrampoline.version -rw-r--r-- 196 bytes
clang.version -rw-r--r-- 123 bytes
csl.mk -rw-r--r-- 5.3 KB
csl.version -rw-r--r-- 57 bytes
curl.mk -rw-r--r-- 3.4 KB
curl.version -rw-r--r-- 95 bytes
dsfmt.mk -rw-r--r-- 2.2 KB
dsfmt.version -rw-r--r-- 96 bytes
gfortblas.alias -rw-r--r-- 706 bytes
gfortblas.c -rw-r--r-- 4.4 KB
gmp.mk -rw-r--r-- 2.8 KB
gmp.version -rw-r--r-- 89 bytes
ittapi.mk -rw-r--r-- 1.6 KB
ittapi.version -rw-r--r-- 91 bytes
libgit2.mk -rw-r--r-- 3.8 KB
libgit2.version -rw-r--r-- 491 bytes
libssh2.mk -rw-r--r-- 2.5 KB
libssh2.version -rw-r--r-- 167 bytes
libsuitesparse.mk -rw-r--r-- 4.4 KB
libsuitesparse.version -rw-r--r-- 181 bytes
libtracyclient.mk -rw-r--r-- 3.4 KB
libtracyclient.version -rw-r--r-- 227 bytes
libuv.mk -rw-r--r-- 2.4 KB
libuv.version -rw-r--r-- 154 bytes
libwhich.mk -rw-r--r-- 1.2 KB
libwhich.version -rw-r--r-- 78 bytes
lld.version -rw-r--r-- 60 bytes
llvm-options.mk -rw-r--r-- 564 bytes
llvm-tools.version -rw-r--r-- 182 bytes
llvm-ver.make -rw-r--r-- 664 bytes
llvm.mk -rw-r--r-- 11.9 KB
llvm.version -rw-r--r-- 919 bytes
llvmunwind.version -rw-r--r-- 95 bytes
mbedtls.mk -rw-r--r-- 3.4 KB
mbedtls.version -rw-r--r-- 103 bytes
mpfr.mk -rw-r--r-- 2.4 KB
mpfr.version -rw-r--r-- 73 bytes
nghttp2.mk -rw-r--r-- 2.0 KB
nghttp2.version -rw-r--r-- 102 bytes
objconv.mk -rw-r--r-- 1.0 KB
objconv.version -rw-r--r-- 264 bytes
openblas.mk -rw-r--r-- 8.8 KB
openblas.version -rw-r--r-- 227 bytes
openlibm.mk -rw-r--r-- 1.3 KB
openlibm.version -rw-r--r-- 163 bytes
p7zip.mk -rw-r--r-- 1.6 KB
p7zip.version -rw-r--r-- 76 bytes
patchelf.mk -rw-r--r-- 2.2 KB
patchelf.version -rw-r--r-- 114 bytes
pcre.mk -rw-r--r-- 2.3 KB
pcre.version -rw-r--r-- 74 bytes
sanitizers.mk -rw-r--r-- 1017 bytes
unwind.mk -rw-r--r-- 6.5 KB
unwind.version -rw-r--r-- 106 bytes
utf8proc.mk -rw-r--r-- 1.5 KB
utf8proc.version -rw-r--r-- 78 bytes
zlib.mk -rw-r--r-- 1.4 KB
zlib.version -rw-r--r-- 162 bytes

back to top