swig使用intel的__attribute __((vector))

0b1100001

我想在c中编写一个函数,然后可以从python调用它。该函数本质上将两个数字相加,但是如果将数组传递给该函数,它将按元素相加并返回。英特尔拥有这一点__attribute__((vector)),这实际上使我们能够做到这一点。但是,如果__attribute__((vector)).i文件中使用swig界面,则会生成错误如果我不这样做,则该函数不会将数组作为输入并引发异常。谁能让我知道正确的方法?

example.c

__attribute__((vector)) double add(double x, double y){                         
  return x+y;                                                                   
}                                                                               

例子

%module example                                                                 
%{                                                                              
  extern __attribute__((vector)) double add(double, double);                    
%}                                                                              

extern double add(double, double);                                              
克鲁梅鲁尔

这样您将无法仅将SIMD函数导出到Python。对于初学者来说,Python有自己的表示浮点数的方式(而不是一种非常有效的方式)。即使有效,所有矢量化性能的提高也会在SWIG界面中丢失。

如果可能的话,我建议您将对性能至关重要的计算整体上移至C,或者只是坚持使用普通的Python列表/元组而不是SIMD数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swig上使用Intel的__attribute __((vector))

来自分类Dev

使用for_each遍历vector <vector <?>>

来自分类Dev

使用std :: vector :: begin vs begin(vector)

来自分类Dev

使用vector <vector>在C ++中表示图

来自分类Dev

尝试在类中使用 vector<vector<int>>

来自分类Dev

vector<vector<double>> 到 mxArray 使用 memcpy

来自分类Dev

Swig C ++:接口vector <Class object *>

来自分类Dev

在python中使用“使用std :: vector”时出现SWIG参数错误

来自分类Dev

在python中使用“使用std :: vector”时出现SWIG参数错误

来自分类Dev

__attribute __((vector_size(N)))的clang模板化使用

来自分类Dev

Java使用Vector类-矩阵

来自分类Dev

ArrayList vs Vector:使用哪个?

来自分类Dev

与使用Vector相比,EventListenerList的优势

来自分类Dev

对std :: vector使用嵌套的[]操作

来自分类Dev

使用std :: vector的互补向量

来自分类Dev

在vector或vector :: swap之间使用std :: swap?

来自分类Dev

使用boost :: python vector_indexing_suite包装std :: vector

来自分类Dev

使用std :: vector :: iterator更改存储在std :: vector中的值?

来自分类Dev

使用`vector <A> :: size_type ix`索引`vector <B>`

来自分类Dev

使用boost :: spirit解析为vector <vector <double >>

来自分类Dev

使用vector时出错:what():vector :: _ M_range_check

来自分类Dev

使用std :: vector创建自定义复数类的vector

来自分类Dev

在C ++上使用vector <vector <int >>进行的矩阵读取错误

来自分类Dev

如何使用SWIG for Python正确包装std :: vector <std :: size_t>?std :: size_t问题

来自分类Dev

swig:如何使QList <T>可迭代,如std :: vector

来自分类Dev

How to convert (typemap) a jagged C++ vector of vectors to Python in SWIG

来自分类Dev

在C ++结构中将SWIG用于std :: vector成员

来自分类Dev

在C ++结构中将SWIG用于std :: vector成员

来自分类Dev

Swig将vector <std :: string>转换为原生PHP数组

Related 相关文章

  1. 1

    在Swig上使用Intel的__attribute __((vector))

  2. 2

    使用for_each遍历vector <vector <?>>

  3. 3

    使用std :: vector :: begin vs begin(vector)

  4. 4

    使用vector <vector>在C ++中表示图

  5. 5

    尝试在类中使用 vector<vector<int>>

  6. 6

    vector<vector<double>> 到 mxArray 使用 memcpy

  7. 7

    Swig C ++:接口vector <Class object *>

  8. 8

    在python中使用“使用std :: vector”时出现SWIG参数错误

  9. 9

    在python中使用“使用std :: vector”时出现SWIG参数错误

  10. 10

    __attribute __((vector_size(N)))的clang模板化使用

  11. 11

    Java使用Vector类-矩阵

  12. 12

    ArrayList vs Vector:使用哪个?

  13. 13

    与使用Vector相比,EventListenerList的优势

  14. 14

    对std :: vector使用嵌套的[]操作

  15. 15

    使用std :: vector的互补向量

  16. 16

    在vector或vector :: swap之间使用std :: swap?

  17. 17

    使用boost :: python vector_indexing_suite包装std :: vector

  18. 18

    使用std :: vector :: iterator更改存储在std :: vector中的值?

  19. 19

    使用`vector <A> :: size_type ix`索引`vector <B>`

  20. 20

    使用boost :: spirit解析为vector <vector <double >>

  21. 21

    使用vector时出错:what():vector :: _ M_range_check

  22. 22

    使用std :: vector创建自定义复数类的vector

  23. 23

    在C ++上使用vector <vector <int >>进行的矩阵读取错误

  24. 24

    如何使用SWIG for Python正确包装std :: vector <std :: size_t>?std :: size_t问题

  25. 25

    swig:如何使QList <T>可迭代,如std :: vector

  26. 26

    How to convert (typemap) a jagged C++ vector of vectors to Python in SWIG

  27. 27

    在C ++结构中将SWIG用于std :: vector成员

  28. 28

    在C ++结构中将SWIG用于std :: vector成员

  29. 29

    Swig将vector <std :: string>转换为原生PHP数组

热门标签

归档