我正在使用多种技术(NumPy、Weave、Cython、Numba)进行Python性能基准测试。该代码需要对大小为NxN的两个numpy数组进行元素乘法,并将结果存储在另一个数组C中。
我的weave.inline()
代码出现了scipy.weave.build_tools.CompileError
错误。我已经创建了一个最小化的代码,它产生了相同的错误。请有人帮帮我吗?
import time
import numpy as np
from scipy import weave
from scipy.weave import converters
def benchmark():
N = np.array(5000, dtype=np.int)
A = np.random.rand(N, N)
B = np.random.rand(N, N)
C = np.zeros([N, N], dtype=float)
t = time.clock()
weave_inline_loop(A, B, C, N)
print time.clock() - t
def weave_inline_loop(A, B, C, N):
code = """
int i, j;
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
{
C(i, j) = A(i, j) * B(i, j);
}
}
return_val = C;
"""
C = weave.inline(code, ['A', 'B', 'C', 'N'], type_converters=converters.blitz, compiler='gcc')
benchmark()