| import numpy as np |
| import time |
| import os |
| import sys |
| import app_cpppy |
|
|
| 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: |
| |
| 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}' |
|
|
| |
| 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) |
|
|
|
|