mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add tvm.
* gnu/packages/machine-learning.scm (tvm): New variable. * gnu/packages/patches/tvm_fix_cpptest_build.patch: New file. * gnu/local.mk: Register new file. Change-Id: Icfee19fccc7cc1c9f6d5d6bb680b554d777f62d6 Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
parent
9b50aa9bfc
commit
5adfe1b8e9
3 changed files with 110 additions and 0 deletions
|
@ -93,6 +93,7 @@
|
|||
#:use-module (gnu packages image-processing)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages jupyter)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
|
@ -117,6 +118,7 @@
|
|||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages rdf)
|
||||
#:use-module (gnu packages regex)
|
||||
#:use-module (gnu packages rocm)
|
||||
#:use-module (gnu packages rpc)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages serialization)
|
||||
|
@ -4630,6 +4632,95 @@ rich objects from one process to another while using the fastest transport for
|
|||
the tensors contained therein.")
|
||||
(license license:bsd-3))))
|
||||
|
||||
(define-public tvm
|
||||
;; Include a bug fix post 0.19 release.
|
||||
(let ((commit "d3a2ed68a42f8b51d8ab1533b62e837b9ea74b8e")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "tvm")
|
||||
(version (git-version "0.20.dev0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/apache/tvm")
|
||||
(commit commit)))
|
||||
(patches (search-patches "tvm_fix_cpptest_build.patch"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ng52i0aydljnlrkyg069838c8b311fynhy5976w74smma2m7v72"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-target "cpptest"
|
||||
#:configure-flags
|
||||
#~(list "-DUSE_OPENCL=ON"
|
||||
"-DUSE_VULKAN=ON"
|
||||
"-DUSE_OPENCL_ENABLE_HOST_PTR=ON"
|
||||
"-DINSTALL_DEV=ON"
|
||||
"-DUSE_GTEST=ON"
|
||||
"-DHIDE_PRIVATE_SYMBOLS=ON" ;per upstream build instructions
|
||||
"-DUSE_LLVM=llvm-config\\ --ignore-libllvm\\ --link-static"
|
||||
;; per upstream build instructions
|
||||
(string-append "-DDLPACK_PATH="
|
||||
(assoc-ref %build-inputs "dlpack") "/include")
|
||||
(string-append "-DDMLC_PATH="
|
||||
(assoc-ref %build-inputs "dmlc-core")
|
||||
"/include")
|
||||
(string-append "-DRANG_PATH="
|
||||
(assoc-ref %build-inputs "rang") "/include"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key source test-target tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(begin
|
||||
(invoke "make" "-j"
|
||||
(number->string (parallel-job-count)) test-target)
|
||||
;; Disable below the actual run of the tests because
|
||||
;; several fail due to platform variations (for example,
|
||||
;; fp16 tests fail because not supported on CPUs).
|
||||
;;
|
||||
;; (chdir "..")
|
||||
;; (invoke (which "bash")
|
||||
;; (string-append source
|
||||
;; "/tests/scripts/task_cpp_unittest.sh"))
|
||||
)))))))
|
||||
(inputs (list dmlc-core-next
|
||||
dlpack
|
||||
libedit
|
||||
libxml2
|
||||
llvm-19
|
||||
opencl-clhpp
|
||||
opencl-headers
|
||||
rang
|
||||
mesa
|
||||
mesa-opencl
|
||||
spirv-headers
|
||||
spirv-tools
|
||||
vulkan-headers ;TODO; now not building due to missing vta-hw
|
||||
vulkan-loader
|
||||
zlib
|
||||
zstd))
|
||||
(native-inputs (list bash-minimal
|
||||
gcc-14
|
||||
googletest
|
||||
(module-ref (resolve-interface '(gnu packages debug))
|
||||
'libbacktrace)
|
||||
pkg-config
|
||||
python
|
||||
python-cython))
|
||||
(home-page "https://tvm.apache.org/")
|
||||
(synopsis
|
||||
"Machine learning compiler framework for CPUs, GPUs and accelerators")
|
||||
(description
|
||||
"Apache TVM is a compiler stack for deep learning systems. It is
|
||||
designed to close the gap between the productivity-focused deep learning
|
||||
frameworks, and the performance- and efficiency-focused hardware backends.
|
||||
TVM works with deep learning frameworks to provide end to end compilation to
|
||||
different backends")
|
||||
(license license:asl2.0))))
|
||||
|
||||
(define-public foxi
|
||||
(let
|
||||
((commit "c278588e34e535f0bb8f00df3880d26928038cad")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue