pytorch/0003-Add-loongarch64-support-for-third_party.patch

82 lines
4.0 KiB
Diff
Raw Normal View History

2024-05-22 09:17:54 +08:00
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