[PATCH 0/3] Add Apache Twm and dependencies

  • Done
  • quality assurance status badge
Details
2 participants
  • Andy Tai
  • Nicolas Goaziou
Owner
unassigned
Submitted by
Andy Tai
Severity
normal

Debbugs page

Andy Tai wrote 2 years ago
(address . guix-patches@gnu.org)(name . Andy Tai)(address . atai@atai.org)
cover.1686380735.git.atai@atai.org
*** BLURB HERE ***

Andy Tai (3):
gnu: Add rang
gnu: Add dmlc-dlpack
gnu: Add twm

gnu/packages/cpp.scm | 21 +++++++
gnu/packages/machine-learning.scm | 95 +++++++++++++++++++++++++++++++
2 files changed, 116 insertions(+)


base-commit: e8f9fb3e03ea8fee0e13f13706a6b16414f74a7b
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH 1/3] gnu: Add rang
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
131e421ab2af24ac4382c8d845ca223fad9de39a.1686380735.git.atai@atai.org
* gnu/packages/cpp.scm (rang): New variable
---
gnu/packages/cpp.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 365b15a3b9..4965ae69e2 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2548,3 +2548,24 @@ (define-public ftxui
@item No dependencies.
@end itemize")
(license license:expat)))
+
+(define-public rang
+ (package
+ (name "rang")
+ (version "3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/agauniyal/rang")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x2fp7zjjivgxblvx1j0qphn4ln6jq42x7xr757fywm3k03y7bil"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://agauniyal.github.io/rang/")
+ (synopsis "Header only terminal c++ library")
+ (description
+ "Rang is a Minimal, Header only Modern c++ library for terminal goodies.")
+ (license license:asl2.0)))
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH 2/3] gnu: Add dmlc-dlpack
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
33d6ff99a3580f99d25333da94140dadd291e8cb.1686380735.git.atai@atai.org
* gnu/packages/machine-learning.scm (dmlc-dlpack): New variable
---
gnu/packages/machine-learning.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index c9bc5e8b68..4ed32a8792 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4388,3 +4388,27 @@ (define-public oneapi-dnnl
"OneAPI Deep Neural Network Library (oneDNN) is a cross-platform
performance library of basic building blocks for deep learning applications.")
(license license:asl2.0)))
+
+
+(define-public dmlc-dlpack
+ (package
+ (name "dmlc-dlpack")
+ (version "0.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmlc/dlpack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jmfvdrx8dn9b0ksm04ixha0jnrk35ip796qg98kfz6g7niw5ir1"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://dmlc.github.io/dlpack/latest")
+ (synopsis "Open In Memory Tensor Structure")
+ (description
+ "DLPack is an open in-memory tensor structure for sharing tensors among frameworks")
+ (license license:asl2.0)))
+
+
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH 3/3] gnu: Add twm
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
7b442ca1d189ba2b76f54f4e07bb8dc8e498a6ce.1686380735.git.atai@atai.org
* gnu/packages/machine-learning.scm (twm): New variable
---
gnu/packages/machine-learning.scm | 71 +++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)

Toggle diff (109 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4ed32a8792..d6a3770228 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -80,6 +80,7 @@ (define-module (gnu packages machine-learning)
#: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 libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
@@ -88,6 +89,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages ninja)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages onc-rpc)
+ #:use-module (gnu packages opencl)
#:use-module (gnu packages parallel)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -99,6 +101,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rocm)
#:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
@@ -108,6 +111,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
@@ -4412,3 +4416,70 @@ (define-public dmlc-dlpack
(license license:asl2.0)))
+(define-public tvm
+ (package
+ (name "tvm")
+ (version "0.12.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/apache/tvm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0h26203sz1z7rxb12lfgzbwb9brfh61i3psjags0dqjz3wsb0s8f"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #false ; tests do not build in this release so do not build or tun them
+ ;#:test-target "test"
+ #:configure-flags #~(list "--trace"
+ "-DUSE_OPENCL=ON"
+ "-DUSE_VULKAN=ON" ;TODO; now not building due to missing vta-hw
+ "-DUSE_OPENCL_ENABLE_HOST_PTR=ON"
+ "-DINSTALL_DEV=ON"
+ ;"-DUSE_GTEST=ON" ; TODO: enable tests in future releases
+ (string-append "-DDLPACK_PATH="
+ (assoc-ref %build-inputs
+ "dmlc-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
+ (add-after 'unpack 'enable-cpptest-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set_target_properties\\(cpptest PROPERTIES EXCLUDE_FROM_ALL 1\\)")
+ "")))))))
+ (inputs (list dmlc-core
+ dmlc-dlpack
+ libedit
+ libxml2
+ opencl-clhpp
+ opencl-headers
+ rang
+ zlib
+ mesa
+ mesa-opencl
+ spirv-headers
+ spirv-tools
+ vulkan-headers ;TODO; now not building due to missing vta-hw
+ vulkan-loader))
+ (native-inputs (list googletest
+ (module-ref (resolve-interface '(gnu packages debug))
+ 'libbacktrace) python pkg-config))
+ (home-page "https://tvm.apache.org/")
+ (synopsis
+ "End to End 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)))
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH v2 1/3] gnu: Add rang
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
fcb90cbfeb603bce8f86f7cbe90fc6d4e8b1b52b.1686980668.git.atai@atai.org
* gnu/packages/cpp.scm (rang): New variable
---
gnu/packages/cpp.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 39a34c20dd..3d43a0c999 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2553,3 +2553,24 @@ (define-public ftxui
@item No dependencies.
@end itemize")
(license license:expat)))
+
+(define-public rang
+ (package
+ (name "rang")
+ (version "3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/agauniyal/rang")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x2fp7zjjivgxblvx1j0qphn4ln6jq42x7xr757fywm3k03y7bil"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://agauniyal.github.io/rang/")
+ (synopsis "Header only terminal c++ library")
+ (description
+ "Rang is a Minimal, Header only Modern c++ library for terminal goodies.")
+ (license license:asl2.0)))

base-commit: 998d89ba20121e87664129890a805c91061baaa7
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH v2 2/3] gnu: Add dmlc-dlpack
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
16d1ba48cab9b74bb9a39560606409008b68d02e.1686980668.git.atai@atai.org
* gnu/packages/machine-learning.scm (dmlc-dlpack): New variable
---
gnu/packages/machine-learning.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 927b531cf2..ac115fc2ad 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4584,3 +4584,27 @@ (define-public oneapi-dnnl
"OneAPI Deep Neural Network Library (oneDNN) is a cross-platform
performance library of basic building blocks for deep learning applications.")
(license license:asl2.0)))
+
+
+(define-public dmlc-dlpack
+ (package
+ (name "dmlc-dlpack")
+ (version "0.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmlc/dlpack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jmfvdrx8dn9b0ksm04ixha0jnrk35ip796qg98kfz6g7niw5ir1"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://dmlc.github.io/dlpack/latest")
+ (synopsis "Open In Memory Tensor Structure")
+ (description
+ "DLPack is an open in-memory tensor structure for sharing tensors among frameworks")
+ (license license:asl2.0)))
+
+
--
2.40.1
Andy Tai wrote 2 years ago
[PATCH v2 3/3] gnu: Add tvm
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
c15ccc7c660f261f2c7771c0e96656fc7f0b19f4.1686980668.git.atai@atai.org
* gnu/packages/machine-learning.scm (tvm): New variable
---
gnu/packages/machine-learning.scm | 71 +++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)

Toggle diff (109 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index ac115fc2ad..4bc599373d 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -80,6 +80,7 @@ (define-module (gnu packages machine-learning)
#: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 libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
@@ -88,6 +89,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages ninja)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages onc-rpc)
+ #:use-module (gnu packages opencl)
#:use-module (gnu packages parallel)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -99,6 +101,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rocm)
#:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
@@ -108,6 +111,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
@@ -4608,3 +4612,70 @@ (define-public dmlc-dlpack
(license license:asl2.0)))
+(define-public tvm
+ (package
+ (name "tvm")
+ (version "0.12.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/apache/tvm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0h26203sz1z7rxb12lfgzbwb9brfh61i3psjags0dqjz3wsb0s8f"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #false ; tests do not build in this release so do not build or tun them
+ ;#:test-target "test"
+ #:configure-flags #~(list "--trace"
+ "-DUSE_OPENCL=ON"
+ "-DUSE_VULKAN=ON" ;TODO; now not building due to missing vta-hw
+ "-DUSE_OPENCL_ENABLE_HOST_PTR=ON"
+ "-DINSTALL_DEV=ON"
+ ;"-DUSE_GTEST=ON" ; TODO: enable tests in future releases
+ (string-append "-DDLPACK_PATH="
+ (assoc-ref %build-inputs
+ "dmlc-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
+ (add-after 'unpack 'enable-cpptest-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set_target_properties\\(cpptest PROPERTIES EXCLUDE_FROM_ALL 1\\)")
+ "")))))))
+ (inputs (list dmlc-core
+ dmlc-dlpack
+ libedit
+ libxml2
+ opencl-clhpp
+ opencl-headers
+ rang
+ zlib
+ mesa
+ mesa-opencl
+ spirv-headers
+ spirv-tools
+ vulkan-headers ;TODO; now not building due to missing vta-hw
+ vulkan-loader))
+ (native-inputs (list googletest
+ (module-ref (resolve-interface '(gnu packages debug))
+ 'libbacktrace) python pkg-config))
+ (home-page "https://tvm.apache.org/")
+ (synopsis
+ "End to End 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)))
--
2.40.1
Nicolas Goaziou wrote 2 weeks ago
Re: [PATCH 0/3] Add Apache Twm and dependencies
(address . 63991@debbugs.gnu.org)(name . Andy Tai)(address . atai@atai.org)
87jz9be9rj.fsf@nicolasgoaziou.fr
Hello,

Toggle quote (2 lines)
> * gnu/packages/machine-learning.scm (tvm): New variable

I tried to build this after updating it to latest release (0.19), but
build fails.

I’m sending the patch set rebased on top of master, with the tvm update.
Do you want to fix the build so I can apply it?

Thanks (and sorry for the delay).

Regards,
--
Nicolas Goaziou
Nicolas Goaziou wrote 2 weeks ago
[PATCH v3 1/3] gnu: Add rang.
(address . 63991@debbugs.gnu.org)
72d7df4102ef1959ed7a6100b38a33787383f216.1740666984.git.mail@nicolasgoaziou.fr
From: Andy Tai <atai@atai.org>

* gnu/packages/cpp.scm (rang): New variable.

Change-Id: Iacbea931d392579ebdc49965fc3b248ae3759a6c
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/cpp.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index a456bf3b51..869e6f4eab 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -310,6 +310,27 @@ (define-public cpp-utilities
parser, IO and conversion utilities.")
(license license:gpl2+)))
+(define-public rang
+ (package
+ (name "rang")
+ (version "3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/agauniyal/rang")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x2fp7zjjivgxblvx1j0qphn4ln6jq42x7xr757fywm3k03y7bil"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://agauniyal.github.io/rang/")
+ (synopsis "Header only terminal C++ library")
+ (description
+ "Rang is a minimal, header only C++ library for terminal goodies.")
+ (license license:asl2.0)))
+
(define-public range-v3
(package
(name "range-v3")

base-commit: fc4795d7d21c3e60d0ca2a51203e8f1b1c312bfb
--
2.48.1
Nicolas Goaziou wrote 2 weeks ago
[PATCH v3 3/3] gnu: Add tvm.
(address . 63991@debbugs.gnu.org)
491c9e16ea624ae1735d4d5a3f6093a4942b6fef.1740666984.git.mail@nicolasgoaziou.fr
From: Andy Tai <atai@atai.org>

* gnu/packages/machine-learning.scm (tvm): New variable.

Change-Id: Icfee19fccc7cc1c9f6d5d6bb680b554d777f62d6
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/machine-learning.scm | 72 +++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)

Toggle diff (99 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index eda56bba61..0c2477004a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -93,6 +93,7 @@ (define-module (gnu packages machine-learning)
#: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 @@ (define-module (gnu packages machine-learning)
#: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)
@@ -4634,6 +4636,76 @@ (define-public tensorpipe
the tensors contained therein.")
(license license:bsd-3))))
+(define-public tvm
+ (package
+ (name "tvm")
+ (version "0.19.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/apache/tvm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s8yrd7v38ianm7g2qzk25q6aa23mscwwixpjj0n562z9hgv5nry"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #false ; tests do not build in this release so do not
+ ; build or tun them #:test-target "test"
+ #:configure-flags
+ #~(list "--trace"
+ "-DUSE_OPENCL=ON"
+ "-DUSE_VULKAN=ON" ;TODO; now not building due to missing vta-hw
+ "-DUSE_OPENCL_ENABLE_HOST_PTR=ON"
+ "-DINSTALL_DEV=ON"
+ ;"-DUSE_GTEST=ON" ; TODO: enable tests in future releases
+ (string-append "-DDLPACK_PATH="
+ (assoc-ref %build-inputs "dmlc-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
+ (add-after 'unpack 'enable-cpptest-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set_target_properties\\(cpptest PROPERTIES EXCLUDE_FROM_ALL 1\\)")
+ "")))))))
+ (inputs (list dmlc-core
+ dmlc-dlpack
+ libedit
+ libxml2
+ opencl-clhpp
+ opencl-headers
+ rang
+ zlib
+ mesa
+ mesa-opencl
+ spirv-headers
+ spirv-tools
+ vulkan-headers ;TODO; now not building due to missing vta-hw
+ vulkan-loader))
+ (native-inputs (list googletest
+ (module-ref (resolve-interface '(gnu packages debug))
+ 'libbacktrace)
+ pkg-config
+ python))
+ (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")
--
2.48.1
Nicolas Goaziou wrote 2 weeks ago
[PATCH v3 2/3] gnu: Add dmlc-dlpack.
(address . 63991@debbugs.gnu.org)
aa823029e247f02e1c59f66a37e03df1dc873b1a.1740666984.git.mail@nicolasgoaziou.fr
From: Andy Tai <atai@atai.org>

* gnu/packages/machine-learning.scm (dmlc-dlpack): New variable.

Change-Id: Ie9756f8b1f846891d0a52b3016be3db4fff78ad0
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/machine-learning.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index b9dce61288..eda56bba61 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3783,6 +3783,28 @@ (define-public dmlc-core
learning libraries.")
(license license:asl2.0)))
+(define-public dmlc-dlpack
+ (package
+ (name "dmlc-dlpack")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmlc/dlpack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "169slm88jin4ddhdwk1qhqzzkhkwk1jrz35i7abhcqkry9wjib4f"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://dmlc.github.io/dlpack/latest")
+ (synopsis "Open in-memory tensor structure")
+ (description
+ "DLPack is an open in-memory tensor structure for sharing tensors among
+frameworks")
+ (license license:asl2.0)))
+
(define-public xgboost
(package
(name "xgboost")
--
2.48.1
Andy Tai wrote 2 weeks ago
Re: [PATCH 0/3] Add Apache Twm and dependencies
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 63991@debbugs.gnu.org)
CAJsg1E9NT05z1nfeJCtO96ggQfkmhMG_SahiPF4fXJfU0aNKHQ@mail.gmail.com
sure I will take a look over the coming weekend


On Thu, Feb 27, 2025 at 8:35 AM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
Toggle quote (9 lines)
>
> > * gnu/packages/machine-learning.scm (tvm): New variable
>
> I tried to build this after updating it to latest release (0.19), but
> build fails.
>
> I’m sending the patch set rebased on top of master, with the tvm update.
> Do you want to fix the build so I can apply it?
>
Andy Tai wrote 1 weeks ago
[PATCH v3 0/3] *** Add Apache Tvm ***
(name . Andy Tai)(address . atai@atai.org)
cover.1741031015.git.atai@atai.org
*** Add apache Tvm and needed dependencies ***

Andy Tai (3):
gnu: Add rang.
gnu: Add dmlc-core-next, as head of main branch of dmlc-core.
gnu: Add tvm.

gnu/packages/cpp.scm | 21 ++++++++
gnu/packages/machine-learning.scm | 89 +++++++++++++++++++++++++++++++
2 files changed, 110 insertions(+)


base-commit: f9dcb84550b85aa816899b2106b1a5ae546167a3
--
2.43.0
Andy Tai wrote 1 weeks ago
[PATCH v3 1/3] gnu: Add rang.
(name . Andy Tai)(address . atai@atai.org)
5dfb642eeee254e410d777ec57f4a07d600458be.1741031015.git.atai@atai.org
* gnu/packages/cpp.scm (rang): New variable.

Change-Id: Iacbea931d392579ebdc49965fc3b248ae3759a6c
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/cpp.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index d6dc070756..8d482d1fbd 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -310,6 +310,27 @@ (define-public cpp-utilities
parser, IO and conversion utilities.")
(license license:gpl2+)))
+(define-public rang
+ (package
+ (name "rang")
+ (version "3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/agauniyal/rang")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x2fp7zjjivgxblvx1j0qphn4ln6jq42x7xr757fywm3k03y7bil"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://agauniyal.github.io/rang/")
+ (synopsis "Header only terminal C++ library")
+ (description
+ "Rang is a minimal, header only C++ library for terminal goodies.")
+ (license license:asl2.0)))
+
(define-public range-v3
(package
(name "range-v3")
--
2.43.0
Andy Tai wrote 1 weeks ago
[PATCH v3 2/3] gnu: Add dmlc-core-next, as head of main branch of dmlc-core.
(name . Andy Tai)(address . atai@atai.org)
82408a3c5645b215b843d62e53ba665e3a1b8504.1741031015.git.atai@atai.org
* gnu/packages/machine-learning.scm (dmlc-core-next): New variable.

Change-Id: Icf608b45b69cf020c213696644412664ba935e6d
---
gnu/packages/machine-learning.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index d02a092f24..7e354ec40a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3783,6 +3783,23 @@ (define-public dmlc-core
learning libraries.")
(license license:asl2.0)))
+(define-public dmlc-core-next
+ ; apache Tvm needs the latest CODE FROM git commits in May 2024 or later
+ (let ((commit "13341857549852a9a86b1894b5ba84c6276ab381"))
+ (package
+ (inherit dmlc-core)
+ (name "dmlc-core")
+ (version (string-append "0.5-1." (string-take commit 8)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmlc/dmlc-core")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "1hj6h103lal3cm5mnry9lrm3d7aij89rxv46yv6y49vzd5hbnfbd")))))))
+
(define-public xgboost
(package
(name "xgboost")
--
2.43.0
Andy Tai wrote 1 weeks ago
[PATCH v3 3/3] gnu: Add tvm.
(name . Andy Tai)(address . atai@atai.org)
9a88cefe0bc3ab606570f4b3372af7ec61b5c1d0.1741031015.git.atai@atai.org
* gnu/packages/machine-learning.scm (tvm): New variable.

Change-Id: Icfee19fccc7cc1c9f6d5d6bb680b554d777f62d6
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/machine-learning.scm | 72 +++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)

Toggle diff (99 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 7e354ec40a..0a84c3b77a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -93,6 +93,7 @@ (define-module (gnu packages machine-learning)
#: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 @@ (define-module (gnu packages machine-learning)
#: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)
@@ -4629,6 +4631,76 @@ (define-public tensorpipe
the tensors contained therein.")
(license license:bsd-3))))
+(define-public tvm
+ (package
+ (name "tvm")
+ (version "0.19.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/apache/tvm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s8yrd7v38ianm7g2qzk25q6aa23mscwwixpjj0n562z9hgv5nry"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #false ; tests do not build in this release so do not
+ ; build or tun them #:test-target "test"
+ #:configure-flags
+ #~(list "--trace"
+ "-DUSE_OPENCL=ON"
+ "-DUSE_VULKAN=ON" ;TODO; now not building due to missing vta-hw
+ "-DUSE_OPENCL_ENABLE_HOST_PTR=ON"
+ "-DINSTALL_DEV=ON"
+ ;"-DUSE_GTEST=ON" ; TODO: enable tests in future releases
+ (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
+ (add-after 'unpack 'enable-cpptest-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set_target_properties\\(cpptest PROPERTIES EXCLUDE_FROM_ALL 1\\)")
+ "")))))))
+ (inputs (list dmlc-core-next
+ dlpack
+ libedit
+ libxml2
+ opencl-clhpp
+ opencl-headers
+ rang
+ zlib
+ mesa
+ mesa-opencl
+ spirv-headers
+ spirv-tools
+ vulkan-headers ;TODO; now not building due to missing vta-hw
+ vulkan-loader))
+ (native-inputs (list ;googletest ;commented out to avoid building tests for now as tests do not build
+ (module-ref (resolve-interface '(gnu packages debug))
+ 'libbacktrace)
+ pkg-config
+ python))
+ (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")
--
2.43.0
Andy Tai wrote 6 days ago
[PATCH v4 0/3] *** Add Apache Tvm ***
(name . Andy Tai)(address . atai@atai.org)
cover.1741246340.git.atai@atai.org
*** Add apache Tvm and needed dependencies ***

Andy Tai (3):
gnu: Add rang.
gnu: Add dmlc-core-next, as head of main branch of dmlc-core.
gnu: Add tvm.

gnu/local.mk | 1 +
gnu/packages/cpp.scm | 21 ++++
gnu/packages/machine-learning.scm | 103 ++++++++++++++++++
.../patches/tvm_fix_cpptest_build.patch | 18 +++
4 files changed, 143 insertions(+)
create mode 100644 gnu/packages/patches/tvm_fix_cpptest_build.patch


base-commit: f9dcb84550b85aa816899b2106b1a5ae546167a3
--
2.48.1
Andy Tai wrote 6 days ago
[PATCH v4 1/3] gnu: Add rang.
(name . Andy Tai)(address . atai@atai.org)
5dfb642eeee254e410d777ec57f4a07d600458be.1741246340.git.atai@atai.org
* gnu/packages/cpp.scm (rang): New variable.

Change-Id: Iacbea931d392579ebdc49965fc3b248ae3759a6c
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/cpp.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index d6dc070756..8d482d1fbd 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -310,6 +310,27 @@ (define-public cpp-utilities
parser, IO and conversion utilities.")
(license license:gpl2+)))
+(define-public rang
+ (package
+ (name "rang")
+ (version "3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/agauniyal/rang")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x2fp7zjjivgxblvx1j0qphn4ln6jq42x7xr757fywm3k03y7bil"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (home-page "https://agauniyal.github.io/rang/")
+ (synopsis "Header only terminal C++ library")
+ (description
+ "Rang is a minimal, header only C++ library for terminal goodies.")
+ (license license:asl2.0)))
+
(define-public range-v3
(package
(name "range-v3")
--
2.48.1
Andy Tai wrote 6 days ago
[PATCH v4 2/3] gnu: Add dmlc-core-next, as head of main branch of dmlc-core.
(name . Andy Tai)(address . atai@atai.org)
82408a3c5645b215b843d62e53ba665e3a1b8504.1741246340.git.atai@atai.org
* gnu/packages/machine-learning.scm (dmlc-core-next): New variable.

Change-Id: Icf608b45b69cf020c213696644412664ba935e6d
---
gnu/packages/machine-learning.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index d02a092f24..7e354ec40a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3783,6 +3783,23 @@ (define-public dmlc-core
learning libraries.")
(license license:asl2.0)))
+(define-public dmlc-core-next
+ ; apache Tvm needs the latest CODE FROM git commits in May 2024 or later
+ (let ((commit "13341857549852a9a86b1894b5ba84c6276ab381"))
+ (package
+ (inherit dmlc-core)
+ (name "dmlc-core")
+ (version (string-append "0.5-1." (string-take commit 8)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmlc/dmlc-core")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "1hj6h103lal3cm5mnry9lrm3d7aij89rxv46yv6y49vzd5hbnfbd")))))))
+
(define-public xgboost
(package
(name "xgboost")
--
2.48.1
Andy Tai wrote 6 days ago
[PATCH v4 3/3] gnu: Add tvm.
(name . Andy Tai)(address . atai@atai.org)
f08cdd81d6db374f3bf02c22725bce2df0881a31.1741246340.git.atai@atai.org
* 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>
---
gnu/local.mk | 1 +
gnu/packages/machine-learning.scm | 86 +++++++++++++++++++
.../patches/tvm_fix_cpptest_build.patch | 18 ++++
3 files changed, 105 insertions(+)
create mode 100644 gnu/packages/patches/tvm_fix_cpptest_build.patch

Toggle diff (149 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 09b29da79f..c27f8865ad 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2328,6 +2328,7 @@ dist_patch_DATA = \
%D%/packages/patches/turbovnc-custom-paths.patch \
%D%/packages/patches/turbovnc-find-system-packages.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
+ %D%/packages/patches/tvm_fix_cpptest_build.patch \
%D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-allow-disabling-openssl.patch \
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 7e354ec40a..fcb4386cae 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -93,6 +93,7 @@ (define-module (gnu packages machine-learning)
#: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 @@ (define-module (gnu packages machine-learning)
#: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)
@@ -4629,6 +4631,90 @@ (define-public tensorpipe
the tensors contained therein.")
(license license:bsd-3))))
+(define-public tvm
+ ;; a bug fix post 0.19 releaqse
+ (let ((commit "d3a2ed68a42f8b51d8ab1533b62e837b9ea74b8e"))
+ (package
+ (name "tvm")
+ (version (string-append "0.20.dev0-1."
+ (string-take commit 8)))
+ (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 (string-append name "-" version "-checkout"))
+ (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 the below actual run of the tests because several fail due to platform variations (for example, fp16 tests fail bewcause 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")
diff --git a/gnu/packages/patches/tvm_fix_cpptest_build.patch b/gnu/packages/patches/tvm_fix_cpptest_build.patch
new file mode 100644
index 0000000000..7c3efac549
--- /dev/null
+++ b/gnu/packages/patches/tvm_fix_cpptest_build.patch
@@ -0,0 +1,18 @@
+Fix build of cpptest by correcting relative include paths
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 757b0d1a8..546ecd516 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -778,6 +778,11 @@ endif()
+ if(GTEST_FOUND)
+ tvm_file_glob(GLOB_RECURSE TEST_SRCS tests/cpp/*.cc)
+ add_executable(cpptest ${TEST_SRCS})
++
++ # fix building cpptest if we don't use 3rdParty subtree as when building with GNU Guix
++ # allowng relative paths starting with ../../.. to point to the top of the source dir
++ target_include_directories(cpptest PRIVATE tests/cpp/runtime)
++
+ # include runtime files for unit testing
+ target_link_libraries(cpptest PRIVATE ${TVM_TEST_LIBRARY_NAME} GTest::GTest GTest::Main GTest::gmock pthread dl)
+ if(DEFINED LLVM_LIBS)
--
2.48.1
Nicolas Goaziou wrote 4 days ago
Re: [bug#63991] [PATCH v4 0/3] *** Add Apache Tvm ***
(name . Andy Tai)(address . atai@atai.org)(address . 63991-done@debbugs.gnu.org)
87y0xf9hil.fsf@nicolasgoaziou.fr
Hello,

Andy Tai <atai@atai.org> writes:

Toggle quote (7 lines)
> *** Add apache Tvm and needed dependencies ***
>
> Andy Tai (3):
> gnu: Add rang.
> gnu: Add dmlc-core-next, as head of main branch of dmlc-core.
> gnu: Add tvm.

Applied, with a few tweaks to style. Thank you.

Regards,
--
Nicolas Goaziou
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 63991@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63991
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help