相关疑难解决方法(0)

如何使用blas以最佳方式转置矩阵?

我正在做一些计算,并对不同BLAS实现的力量和弱点进行一些分析.但是我遇到了一个问题.

我正在测试cuBlas,在GPU上做linAlg似乎是个好主意,但是有一个问题.

使用列主格式的cuBlas实现,因为这不是我最终需要的,我很好奇是否有一种方法可以让BLAS做矩阵转置?

c cuda blas cublas

10
推荐指数
1
解决办法
8653
查看次数

使用 FORTRAN 排序的 Numpy 数组到 ctypes

是否有一种高性能方法可以将 numpy 数组转换为 FORTRAN 有序 ctypes 数组,理想情况下不需要副本,并且不会触发与步幅相关的问题?

\n
import numpy as np\n\n# Sample data\nn = 10000\nA = np.zeros((n,n), dtype=np.int8)\nA[0,1] = 1\n\ndef slow_conversion(A):\n    return np.ctypeslib.as_ctypes(np.ascontiguousarray(A.T))\n\nassert slow_conversion(A)[1][0] == 1\n
Run Code Online (Sandbox Code Playgroud)\n

仅调用as_ctypes的性能分析:

\n
%%timeit\nnp.ctypeslib.as_ctypes(A)\n
Run Code Online (Sandbox Code Playgroud)\n

3.35 \xc2\xb5s \xc2\xb1 每个循环 10.5 ns(意味着 \xc2\xb1 标准偏差 7 次运行,每次 100000 次循环)

\n

所提供的(慢速)转换的性能分析

\n
%%timeit\nslow_conversion(A)\n
Run Code Online (Sandbox Code Playgroud)\n

206 ms \xc2\xb1 每个循环 10.4 ms(平均 \xc2\xb1 标准偏差 7 次运行,每次 1 次循环)

\n

理想的结果是获得与调用类似的性能as_ctypes。

\n

python ctypes numpy

9
推荐指数
2
解决办法
906
查看次数

标签 统计

blas ×1

c ×1

ctypes ×1

cublas ×1

cuda ×1

numpy ×1

python ×1