cuda: support cudnn manifests
Also changes the schemas a bit (still don't care about migrations), switches to named_params!, fixes up perf issues when ingesting manifests and/or hrefs into sqlite, etc. Adds sample queries such as "CudaArtifact conflicts" to datasette config, which explain some issues associated with choosing an evalModules schema on the cudaPackages side.
This commit is contained in:
parent
26538edf4f
commit
c8b8b56456
15 changed files with 770 additions and 73 deletions
97
default.nix
97
default.nix
|
@ -50,25 +50,110 @@ lib.makeScope pkgs.newScope (
|
|||
datasette-wrapped = self.callPackage (
|
||||
{
|
||||
datasette,
|
||||
datasette-metadata,
|
||||
datasette-assets,
|
||||
makeWrapper,
|
||||
runCommand,
|
||||
}:
|
||||
runCommand "datasettew" { nativeBuildInputs = [ makeWrapper ]; } ''
|
||||
mkdir -p "$out/bin"
|
||||
makeWrapper ${lib.getExe datasette} "$out/bin/datasettew" \
|
||||
--add-flags --metadata=${datasette-metadata}
|
||||
''
|
||||
runCommand "datasettew"
|
||||
{
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
}
|
||||
''
|
||||
mkdir -p "$out/bin"
|
||||
makeWrapper ${lib.getExe datasette} "$out/bin/datasettew" \
|
||||
--append-flags --metadata=${datasette-assets}/metadata.json \
|
||||
--append-flags --static=static:${datasette-assets}/static
|
||||
''
|
||||
) { };
|
||||
datasette-assets = self.callPackage (
|
||||
{
|
||||
runCommand,
|
||||
datasette-metadata,
|
||||
datasette-settings,
|
||||
}:
|
||||
runCommand "datasette-assets"
|
||||
{
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
}
|
||||
''
|
||||
mkdir "$out"
|
||||
cp --no-preserve=mode -r ${./static} "$out"/static
|
||||
cp ${datasette-metadata} "$out"/metadata.json
|
||||
cp ${datasette-settings} "$out"/settings.json
|
||||
''
|
||||
) { };
|
||||
datasette-settings = self.callPackage (
|
||||
{ formats }:
|
||||
(formats.json { }).generate "datasette-settings.json" {
|
||||
sql_time_limit_ms = 8000;
|
||||
}
|
||||
) { };
|
||||
datasette-metadata = self.callPackage (
|
||||
{ formats }:
|
||||
(formats.json { }).generate "datasette-metadata.json" {
|
||||
title = "CUDA INDEX";
|
||||
description_html = ''
|
||||
<p>Visualizing the contents of <a href="https://nixos.org/manual/nixpkgs/unstable/#cuda">Nixpkgs' cudaPackages</a>.
|
||||
Generated via an <a href="https://forge.someonex.net/else/sidx">ad-hoc indexing tool</a>.
|
||||
</p>
|
||||
'';
|
||||
"extra_css_urls" = [
|
||||
"/static/some.css"
|
||||
];
|
||||
"databases" = {
|
||||
"sidx" = {
|
||||
"tables" = {
|
||||
"Hash" = {
|
||||
"label_column" = "hash";
|
||||
};
|
||||
"CudaArtifact" = {
|
||||
facets = [
|
||||
"pname"
|
||||
"platform"
|
||||
];
|
||||
};
|
||||
};
|
||||
queries.cuda_conflicts = {
|
||||
title = "CudaArtifact Conflicts";
|
||||
description_html = ''
|
||||
<code>CudaArtifact</code>s (identified by <code>sha256</code>)
|
||||
claiming the same <code>(pname, version, platform)</code> triple
|
||||
'';
|
||||
sql = ''
|
||||
SELECT
|
||||
COUNT(DISTINCT sha256) AS conflicts,
|
||||
pname.str AS pname,
|
||||
ver.str AS ver,
|
||||
plat.str AS plat,
|
||||
GROUP_CONCAT(name.str, char(10)) AS name,
|
||||
GROUP_CONCAT(tag.str, char(10)) AS tag,
|
||||
GROUP_CONCAT(h.hash, char(10)) AS sha256
|
||||
FROM
|
||||
(
|
||||
CudaArtifact AS cc,
|
||||
Str AS name,
|
||||
Str AS pname,
|
||||
Str as ver,
|
||||
Str as plat,
|
||||
Hash as h
|
||||
ON cc.name=name.id
|
||||
AND cc.pname=pname.id
|
||||
AND cc.version = ver.id
|
||||
AND cc.platform = plat.id
|
||||
AND cc.sha256 = h.id
|
||||
)
|
||||
LEFT JOIN Str AS tag
|
||||
ON
|
||||
cc.compat_tag=tag.id
|
||||
GROUP BY
|
||||
cc.pname, cc.version, cc.platform
|
||||
HAVING
|
||||
conflicts >= CAST(:min_conflicts AS INTEGER)
|
||||
ORDER BY conflicts DESC
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue