GNU bug report logs - #63991
[PATCH 0/3] Add Apache Twm and dependencies

Previous Next

Package: guix-patches;

Reported by: Andy Tai <atai <at> atai.org>

Date: Sat, 10 Jun 2023 07:11:01 UTC

Severity: normal

Tags: patch

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63991 in the body.
You can then email your comments to 63991 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 10 Jun 2023 07:11:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andy Tai <atai <at> atai.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 10 Jun 2023 07:11:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: guix-patches <at> gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH 0/3]  Add Apache Twm and dependencies
Date: Sat, 10 Jun 2023 00:10:46 -0700
*** 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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 10 Jun 2023 07:13:01 GMT) Full text and rfc822 format available.

Message #8 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH 1/3] gnu: Add rang
Date: Sat, 10 Jun 2023 00:12:37 -0700
* gnu/packages/cpp.scm (rang): New variable
---
 gnu/packages/cpp.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 10 Jun 2023 07:13:02 GMT) Full text and rfc822 format available.

Message #11 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH 2/3] gnu: Add dmlc-dlpack
Date: Sat, 10 Jun 2023 00:12:38 -0700
* gnu/packages/machine-learning.scm (dmlc-dlpack): New variable
---
 gnu/packages/machine-learning.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 10 Jun 2023 07:13:02 GMT) Full text and rfc822 format available.

Message #14 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH 3/3] gnu: Add twm
Date: Sat, 10 Jun 2023 00:12:39 -0700
* gnu/packages/machine-learning.scm (twm): New variable
---
 gnu/packages/machine-learning.scm | 71 +++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 17 Jun 2023 05:47:01 GMT) Full text and rfc822 format available.

Message #17 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v2 1/3] gnu: Add rang
Date: Fri, 16 Jun 2023 22:45:45 -0700
* gnu/packages/cpp.scm (rang): New variable
---
 gnu/packages/cpp.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 17 Jun 2023 05:47:02 GMT) Full text and rfc822 format available.

Message #20 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v2 2/3] gnu: Add dmlc-dlpack
Date: Fri, 16 Jun 2023 22:45:46 -0700
* gnu/packages/machine-learning.scm (dmlc-dlpack): New variable
---
 gnu/packages/machine-learning.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Sat, 17 Jun 2023 05:47:02 GMT) Full text and rfc822 format available.

Message #23 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v2 3/3] gnu: Add tvm
Date: Fri, 16 Jun 2023 22:45:47 -0700
* gnu/packages/machine-learning.scm (tvm): New variable
---
 gnu/packages/machine-learning.scm | 71 +++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 27 Feb 2025 14:40:03 GMT) Full text and rfc822 format available.

Message #26 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63991 <at> debbugs.gnu.org
Cc: Andy Tai <atai <at> atai.org>
Subject: Re: [PATCH 0/3]  Add Apache Twm and dependencies
Date: Thu, 27 Feb 2025 15:34:56 +0100
Hello,

> * 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






Information forwarded to atai <at> atai.org, guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 27 Feb 2025 14:40:04 GMT) Full text and rfc822 format available.

Message #29 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63991 <at> debbugs.gnu.org
Cc: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>, Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 1/3] gnu: Add rang.
Date: Thu, 27 Feb 2025 15:37:08 +0100
From: Andy Tai <atai <at> atai.org>

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

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

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







Information forwarded to atai <at> atai.org, guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 27 Feb 2025 14:40:06 GMT) Full text and rfc822 format available.

Message #32 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63991 <at> debbugs.gnu.org
Cc: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>, Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 3/3] gnu: Add tvm.
Date: Thu, 27 Feb 2025 15:37:10 +0100
From: Andy Tai <atai <at> atai.org>

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

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

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







Information forwarded to atai <at> atai.org, guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 27 Feb 2025 14:40:08 GMT) Full text and rfc822 format available.

Message #35 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63991 <at> debbugs.gnu.org
Cc: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>, Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 2/3] gnu: Add dmlc-dlpack.
Date: Thu, 27 Feb 2025 15:37:09 +0100
From: Andy Tai <atai <at> atai.org>

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

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

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







Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Fri, 28 Feb 2025 02:24:01 GMT) Full text and rfc822 format available.

Message #38 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Cc: 63991 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/3] Add Apache Twm and dependencies
Date: Thu, 27 Feb 2025 20:23:10 -0600
sure I will take a look over the coming weekend


On Thu, Feb 27, 2025 at 8:35 AM Nicolas Goaziou <mail <at> nicolasgoaziou.fr> wrote:
>
> > * 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?
>




Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Mon, 03 Mar 2025 19:46:02 GMT) Full text and rfc822 format available.

Message #41 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 0/3] *** Add Apache Tvm ***
Date: Mon,  3 Mar 2025 11:45:40 -0800
*** 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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Mon, 03 Mar 2025 19:46:02 GMT) Full text and rfc822 format available.

Message #44 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 1/3] gnu: Add rang.
Date: Mon,  3 Mar 2025 11:45:41 -0800
* gnu/packages/cpp.scm (rang): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Mon, 03 Mar 2025 19:46:03 GMT) Full text and rfc822 format available.

Message #47 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 2/3] gnu: Add dmlc-core-next,
 as head of main branch of dmlc-core.
Date: Mon,  3 Mar 2025 11:45:42 -0800
* gnu/packages/machine-learning.scm (dmlc-core-next): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Mon, 03 Mar 2025 19:47:02 GMT) Full text and rfc822 format available.

Message #50 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v3 3/3] gnu: Add tvm.
Date: Mon,  3 Mar 2025 11:45:43 -0800
* gnu/packages/machine-learning.scm (tvm): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 06 Mar 2025 07:36:02 GMT) Full text and rfc822 format available.

Message #53 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v4 0/3] *** Add Apache Tvm  ***
Date: Wed,  5 Mar 2025 23:35:38 -0800
*** 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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 06 Mar 2025 07:37:02 GMT) Full text and rfc822 format available.

Message #56 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v4 1/3] gnu: Add rang.
Date: Wed,  5 Mar 2025 23:35:39 -0800
* gnu/packages/cpp.scm (rang): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 06 Mar 2025 07:37:02 GMT) Full text and rfc822 format available.

Message #59 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v4 2/3] gnu: Add dmlc-core-next,
 as head of main branch of dmlc-core.
Date: Wed,  5 Mar 2025 23:35:40 -0800
* gnu/packages/machine-learning.scm (dmlc-core-next): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#63991; Package guix-patches. (Thu, 06 Mar 2025 07:37:03 GMT) Full text and rfc822 format available.

Message #62 received at 63991 <at> debbugs.gnu.org (full text, mbox):

From: Andy Tai <atai <at> atai.org>
To: 63991 <at> debbugs.gnu.org,
	mail <at> nicolasgoaziou.fr
Cc: Andy Tai <atai <at> atai.org>
Subject: [PATCH v4 3/3] gnu: Add tvm.
Date: Wed,  5 Mar 2025 23:35:41 -0800
* 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 <at> 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

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





Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Sun, 09 Mar 2025 00:27:01 GMT) Full text and rfc822 format available.

Notification sent to Andy Tai <atai <at> atai.org>:
bug acknowledged by developer. (Sun, 09 Mar 2025 00:27:02 GMT) Full text and rfc822 format available.

Message #67 received at 63991-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Andy Tai <atai <at> atai.org>
Cc: 63991-done <at> debbugs.gnu.org
Subject: Re: [bug#63991] [PATCH v4 0/3] *** Add Apache Tvm  ***
Date: Sun, 09 Mar 2025 01:25:54 +0100
Hello,

Andy Tai <atai <at> atai.org> writes:

> *** 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






bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 06 Apr 2025 11:24:27 GMT) Full text and rfc822 format available.

This bug report was last modified 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.