Compare commits

..

12 Commits

Author SHA1 Message Date
openeuler-ci-bot
1255d5527a
!33 Fix build error for riscv64
From: @DingliZhang 
Reviewed-by: @zhunaipan 
Signed-off-by: @zhunaipan
2024-08-14 06:11:55 +00:00
Dingli Zhang
26b9876e31 Fix build error for riscv64 2024-07-16 17:58:22 +00:00
openeuler-ci-bot
c29b4b63d9
!29 Fix build error for loongarch64
From: @zhangzikang1992 
Reviewed-by: @sinever 
Signed-off-by: @sinever
2024-05-24 09:54:07 +00:00
zhangzikang1992
2911910129 Fix build error for loongarch64 2024-05-22 09:17:54 +08:00
openeuler-ci-bot
4bae76d829
!24 Fix CVE-2024-31584
From: @tjwangxm 
Reviewed-by: @sinever 
Signed-off-by: @sinever
2024-05-10 08:07:49 +00:00
wangxiaomeng
a35ad35368 Fix CVE-2024-31584 2024-05-10 14:01:04 +08:00
openeuler-ci-bot
84f48fb6cd
!21 Patch: Add -Wno-error=nonnull for test/cpp/api/
From: @desert-sailor 
Reviewed-by: @sinever 
Signed-off-by: @sinever
2024-01-12 03:31:26 +00:00
desert-sailor
f52b9f2daa Patch: Add -Wno-error=nonnull for test/cpp/api/ 2024-01-11 14:22:06 +08:00
openeuler-ci-bot
06c8e0c2a3
!20 Upgrade version to 2.1.2
From: @desert-sailor 
Reviewed-by: @sinever 
Signed-off-by: @sinever
2024-01-03 08:16:34 +00:00
desert-sailor
d6248b2bf0 Upgrade version to 2.1.2 2023-12-28 13:02:10 +08:00
openeuler-ci-bot
72c01e641b
!16 Fix the eulerMaker failure
From: @desert-sailor 
Reviewed-by: @zhunaipan 
Signed-off-by: @zhunaipan
2023-08-17 11:16:14 +00:00
openeuler-ci-bot
7574bc7d3c
!15 update to upstream version 2.0.1
From: @desert-sailor 
Reviewed-by: @sinever 
Signed-off-by: @sinever
2023-07-31 04:20:57 +00:00
6 changed files with 248 additions and 3 deletions

View File

@ -0,0 +1,37 @@
From 0d3ceb3058201868765ff3aa1126685f3f7f9ecc Mon Sep 17 00:00:00 2001
From: Andrew Calvano <calvano@fb.com>
Date: Fri, 17 Nov 2023 17:29:04 +0000
Subject: [PATCH] Fix for PyTorch mobile flatbuffer loader out of bounds reads
(#110162)
Summary:
The mobile_ivalue_size field in the mobile_bytecode flatbuffer schema can be larger than the ivalues vector. This introduces potential for memory corruption when parsing the mobile_bytecode Module.
This diff fixes the issue by ensuring that mobile_ivalue_size is less than the size of the ivalues vector.
Test Plan: contbuild & OSS CI
Differential Revision: D49687548
Pull Request resolved: https://github.com/pytorch/pytorch/pull/110162
Approved by: https://github.com/malfet
---
torch/csrc/jit/mobile/flatbuffer_loader.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/torch/csrc/jit/mobile/flatbuffer_loader.cpp b/torch/csrc/jit/mobile/flatbuffer_loader.cpp
index 2fb12a4f..2069330b 100644
--- a/torch/csrc/jit/mobile/flatbuffer_loader.cpp
+++ b/torch/csrc/jit/mobile/flatbuffer_loader.cpp
@@ -302,7 +302,7 @@ mobile::Module FlatbufferLoader::parseModule(
storage_loaded_.resize(module->storage_data_size(), false);
mobile_ivalue_size_ = module_->mobile_ivalue_size();
- if (mobile_ivalue_size_ == 0) {
+ if (mobile_ivalue_size_ == 0 || mobile_ivalue_size_ > ivalues->size()) {
mobile_ivalue_size_ = ivalues->size();
}
--
2.43.0

View File

@ -0,0 +1,29 @@
From 367387bab836c73c23719f97d929572c8b4e0fad Mon Sep 17 00:00:00 2001
From: Nick Rossenbach <rossenbach@cs.rwth-aachen.de>
Date: Tue, 18 Apr 2023 23:31:51 +0200
Subject: [PATCH] Add -Wno-error=nonnull for test/cpp/api/
On some platforms the build might fail due to the nonnull error
being triggered by different compiler behavior.
Fix for #99278.
---
test/cpp/api/CMakeLists.txt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/test/cpp/api/CMakeLists.txt b/test/cpp/api/CMakeLists.txt
index 6b801a073182794..181139b01360c30 100644
--- a/test/cpp/api/CMakeLists.txt
+++ b/test/cpp/api/CMakeLists.txt
@@ -80,6 +80,11 @@ if(NOT MSVC)
target_compile_options_if_supported(test_api "-Wno-maybe-uninitialized")
# gcc gives nonsensical warnings about variadic.h
target_compile_options_if_supported(test_api "-Wno-unused-but-set-parameter")
+ # the nonnull check might trigger for some build configurations,
+ # probably happening due to different code optimization
+ # (see e.g. https://rkoucha.fr/tech_corner/nonnull_gcc_attribute.html)
+ # this happened for a riscv build: https://github.com/pytorch/pytorch/issues/99278
+ target_compile_options_if_supported(test_api "-Wno-error=nonnull")
endif()
if(INSTALL_TEST)

View File

@ -0,0 +1,81 @@
From cba0eb7a9a7504847f48366c2efc901d3f3652ec Mon Sep 17 00:00:00 2001
From: zhangzikang <zhangzikang@kylinos.cn>
Date: Tue, 21 May 2024 15:28:14 +0800
Subject: [PATCH] Add loongarch64 support for third_party
---
third_party/benchmark/src/cycleclock.h | 2 +-
.../third_party/onnx/third_party/benchmark/src/cycleclock.h | 2 +-
third_party/onnx/third_party/benchmark/src/cycleclock.h | 2 +-
third_party/protobuf/third_party/benchmark/src/cycleclock.h | 2 +-
third_party/sleef/src/arch/helperpurec_scalar.h | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/third_party/benchmark/src/cycleclock.h b/third_party/benchmark/src/cycleclock.h
index d65d32a3..4efaf582 100644
--- a/third_party/benchmark/src/cycleclock.h
+++ b/third_party/benchmark/src/cycleclock.h
@@ -208,7 +208,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;
#endif
-#elif defined(__e2k__) || defined(__elbrus__)
+#elif defined(__e2k__) || defined(__elbrus__) || defined(__loongarch64)
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
diff --git a/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h b/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
index 3b376ac5..b0a3c0cb 100644
--- a/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
+++ b/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
@@ -153,7 +153,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__loongarch64)
// mips apparently only allows rdtsc for superusers, so we fall
// back to gettimeofday. It's possible clock_gettime would be better.
struct timeval tv;
diff --git a/third_party/onnx/third_party/benchmark/src/cycleclock.h b/third_party/onnx/third_party/benchmark/src/cycleclock.h
index d65d32a3..4efaf582 100644
--- a/third_party/onnx/third_party/benchmark/src/cycleclock.h
+++ b/third_party/onnx/third_party/benchmark/src/cycleclock.h
@@ -208,7 +208,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;
#endif
-#elif defined(__e2k__) || defined(__elbrus__)
+#elif defined(__e2k__) || defined(__elbrus__) || defined(__loongarch64)
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
diff --git a/third_party/protobuf/third_party/benchmark/src/cycleclock.h b/third_party/protobuf/third_party/benchmark/src/cycleclock.h
index 4251fe4c..694e03dc 100644
--- a/third_party/protobuf/third_party/benchmark/src/cycleclock.h
+++ b/third_party/protobuf/third_party/benchmark/src/cycleclock.h
@@ -153,7 +153,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__loongarch64)
// mips apparently only allows rdtsc for superusers, so we fall
// back to gettimeofday. It's possible clock_gettime would be better.
struct timeval tv;
diff --git a/third_party/sleef/src/arch/helperpurec_scalar.h b/third_party/sleef/src/arch/helperpurec_scalar.h
index e77e518f..a8c96e3b 100644
--- a/third_party/sleef/src/arch/helperpurec_scalar.h
+++ b/third_party/sleef/src/arch/helperpurec_scalar.h
@@ -54,7 +54,7 @@
#define ENABLE_FMA_SP
//@#define ENABLE_FMA_SP
-#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || CONFIG == 3
+#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || defined(__loongarch64) || CONFIG == 3
#ifndef FP_FAST_FMA
#define FP_FAST_FMA
//@#define FP_FAST_FMA
--
2.33.0

View File

@ -0,0 +1,74 @@
From 1dc0fa9e37959b8fedfd1799670388e3f06d0ecc Mon Sep 17 00:00:00 2001
From: Dingli Zhang <dingli@iscas.ac.cn>
Date: Tue, 16 Jul 2024 17:52:28 +0000
Subject: [PATCH] Fix build error for riscv64
diff --git a/third_party/benchmark/src/cycleclock.h b/third_party/benchmark/src/cycleclock.h
index d65d32a3..452e11e4 100644
--- a/third_party/benchmark/src/cycleclock.h
+++ b/third_party/benchmark/src/cycleclock.h
@@ -208,7 +208,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;
#endif
-#elif defined(__e2k__) || defined(__elbrus__)
+#elif defined(__e2k__) || defined(__elbrus__) || defined(__riscv)
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
diff --git a/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h b/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
index 3b376ac5..add2f298 100644
--- a/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
+++ b/third_party/onnx-tensorrt/third_party/onnx/third_party/benchmark/src/cycleclock.h
@@ -153,7 +153,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__riscv)
// mips apparently only allows rdtsc for superusers, so we fall
// back to gettimeofday. It's possible clock_gettime would be better.
struct timeval tv;
diff --git a/third_party/onnx/third_party/benchmark/src/cycleclock.h b/third_party/onnx/third_party/benchmark/src/cycleclock.h
index d65d32a3..452e11e4 100644
--- a/third_party/onnx/third_party/benchmark/src/cycleclock.h
+++ b/third_party/onnx/third_party/benchmark/src/cycleclock.h
@@ -208,7 +208,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
asm volatile("rdcycle %0" : "=r"(cycles));
return cycles;
#endif
-#elif defined(__e2k__) || defined(__elbrus__)
+#elif defined(__e2k__) || defined(__elbrus__) || defined(__riscv)
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
diff --git a/third_party/protobuf/third_party/benchmark/src/cycleclock.h b/third_party/protobuf/third_party/benchmark/src/cycleclock.h
index 4251fe4c..07d63307 100644
--- a/third_party/protobuf/third_party/benchmark/src/cycleclock.h
+++ b/third_party/protobuf/third_party/benchmark/src/cycleclock.h
@@ -153,7 +153,7 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
struct timeval tv;
gettimeofday(&tv, nullptr);
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
-#elif defined(__mips__)
+#elif defined(__mips__) || defined(__riscv)
// mips apparently only allows rdtsc for superusers, so we fall
// back to gettimeofday. It's possible clock_gettime would be better.
struct timeval tv;
diff --git a/third_party/sleef/src/arch/helperpurec_scalar.h b/third_party/sleef/src/arch/helperpurec_scalar.h
index e77e518f..f28c2b83 100644
--- a/third_party/sleef/src/arch/helperpurec_scalar.h
+++ b/third_party/sleef/src/arch/helperpurec_scalar.h
@@ -54,7 +54,7 @@
#define ENABLE_FMA_SP
//@#define ENABLE_FMA_SP
-#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || CONFIG == 3
+#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || defined(__riscv) || CONFIG == 3
#ifndef FP_FAST_FMA
#define FP_FAST_FMA
//@#define FP_FAST_FMA
--
2.41.0

View File

@ -1,12 +1,21 @@
%global _empty_manifest_terminate_build 0 %global _empty_manifest_terminate_build 0
Name: pytorch Name: pytorch
Version: 2.0.1 Version: 2.1.2
Release: 2 Release: 5
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
License: BSD-3 License: BSD-3-Clause
URL: https://pytorch.org/ URL: https://pytorch.org/
Source0: https://github.com/pytorch/pytorch/releases/download/v%{version}/pytorch-v%{version}.tar.gz Source0: https://github.com/pytorch/pytorch/releases/download/v%{version}/pytorch-v%{version}.tar.gz
Patch1: 0001-add-Wno-error-nonnull-for-test-cpp-api.patch
Patch2: 0001-Fix-for-PyTorch-mobile-flatbuffer-loader-out-of-bounds-reads.patch
%ifarch loongarch64
Patch3: 0003-Add-loongarch64-support-for-third_party.patch
%endif
%ifarch riscv64
Patch4: 0004-Fix-build-error-for-riscv64.patch
%endif
BuildRequires: g++ BuildRequires: g++
Requires: python3-future Requires: python3-future
Requires: python3-numpy Requires: python3-numpy
@ -85,6 +94,21 @@ mv %{buildroot}/doclist.lst .
%{_docdir}/* %{_docdir}/*
%changelog %changelog
* Wed Jul 17 2024 Dingli Zhang <dingli@iscas.ac.cn> - 2.1.2-5
- Fix build error for riscv64
* Wed May 22 2024 zhangzikang <zhangzikang@kylinos.cn> - 2.1.2-4
- Fix build error for loongarch64
* Mon Apr 22 2024 wangxiaomeng <wangxiaomeng@kylinos.cn> - 2.1.2-3
- Fix CVE-2024-31584
* Thu Jan 11 2024 Dongxing Wang <dongxing.wang_a@thundersoft.com> - 2.1.2-2
- Patch: Add -Wno-error=nonnull for test/cpp/api/
* Thu Dec 28 2023 Dongxing Wang <dongxing.wang_a@thundersoft.com> - 2.1.2-1
- upgrade to 2.1.2
* Thu Aug 17 2023 Dongxing Wang <dxwangk@isoftstone.com> - 2.0.1-2 * Thu Aug 17 2023 Dongxing Wang <dxwangk@isoftstone.com> - 2.0.1-2
- Fix the EulerMaker failure for verion 2.0.1 - Fix the EulerMaker failure for verion 2.0.1