File size: 828 Bytes
02252d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import numpy as np
import time
import os
import sys
import app_cpppy  # 导入C++扩展

def python_matmul(x, y):
	return np.dot(x, y)
	
size = 1000
a = np.random.rand(size, size).astype(np.float64)
b = np.random.rand(size, size).astype(np.float64)


try:    
	# 测试C++扩展
	start = time.time()
	cpp_result = app_cpppy.matrix_multiply(a, b)
	cpp_time = time.time() - start
except Exception as e:
	cpp_time = time.time() - start
	cpp_result = f'❌ Import failed: {e}'

# 测试Python实现
start = time.time()
py_result = python_matmul(a, b)
py_time = time.time() - start

# 验证结果一致性
diff = np.abs(cpp_result - py_result).max()

res = {
	"cpp_time": cpp_time,
	"python_time": py_time,
    "speedup": py_time / cpp_time if cpp_time > 0 else 0,
    "max_difference": diff,
    "matrix_size": size
}

print(res)