push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
cmake_minimum_required(VERSION 3.0)
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
add_executable(test test.cpp)
target_link_libraries(test "${TORCH_LIBRARIES}")

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
cmake,
libtorch-bin,
linkFarm,
symlinkJoin,
cudaSupport,
cudaPackages ? { },
}:
let
inherit (cudaPackages) cudatoolkit cudnn;
cudatoolkit_joined = symlinkJoin {
name = "${cudatoolkit.name}-unsplit";
paths = [
cudatoolkit.out
cudatoolkit.lib
];
};
# We do not have access to /run/opengl-driver/lib in the sandbox,
# so use a stub instead.
cudaStub = linkFarm "cuda-stub" [
{
name = "libcuda.so.1";
path = "${cudatoolkit}/lib/stubs/libcuda.so";
}
];
in
stdenv.mkDerivation {
pname = "libtorch-test";
version = libtorch-bin.version;
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./CMakeLists.txt
./test.cpp
];
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libtorch-bin ] ++ lib.optionals cudaSupport [ cudnn ];
cmakeFlags = lib.optionals cudaSupport [ "-DCUDA_TOOLKIT_ROOT_DIR=${cudatoolkit_joined}" ];
doCheck = true;
installPhase = ''
touch $out
'';
checkPhase =
lib.optionalString cudaSupport ''
LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
''
+ ''
./test
'';
}

View File

@@ -0,0 +1,20 @@
#undef NDEBUG
#include <cassert>
#include <iostream>
#include <torch/torch.h>
int main() {
torch::Tensor tensor = torch::eye(3);
float checkData[] = {
1, 0, 0,
0, 1, 0,
0, 0, 1
};
torch::Tensor check = torch::from_blob(checkData, {3, 3});
assert(tensor.allclose(check));
}