结合Cython和MKL

时间:2015-11-08 17:28:20

标签: python c cython

我想在我的cython代码中使用MKL库的一些函数。因此我写了函数

#include <stdlib.h>
#include <complex.h>
#include <stdbool.h>
#define MKL__Complex16 double _Complex
#include <mkl.h>
#include <mkl_cblas.h>
#include <mkl_blas.h>
#include <mkl_lapack.h>
#include <mkl_lapacke.h>
inline void scalarMult(const double _Complex *a, const int a_len, double _Complex *b, const int b_len, const double z)
{
    if(a_len != b_len)
        return;
    if(z == 1)
        memcpy(b, a, a_len);
    else
        cblas_daxpy(a_len, (z-1), (double*)a, 1, (double*)b, 1);
} 

(是的,我正在失去精确度,但这不是重点) 现在我查看了必要的命令here,并将它们添加到extra-compile-args中的setup.py文件中 - 配置中的部分。

 -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_sequential.a -Wl,--end-group -lpthread -lm

现在编译器(gcc)首先抱怨未知命令--start-group--end-group,之后我在执行期间收到错误:

./cython_wrapper.so: undefined symbol: cblas_daxpy

我该如何解决这个问题?

0 个答案:

没有答案