提交 951112c3 authored 作者: Alexander Matyasko's avatar Alexander Matyasko

Add optimization for magma gpu eigh

上级 da1374e8
......@@ -75,7 +75,7 @@ from .opt_util import alpha_merge, output_merge, pad_dims, unpad_dims
from .reduction import GpuMaxAndArgmax
from .linalg import (GpuCusolverSolve, MATRIX_STRUCTURES_SOLVE, GpuCholesky,
cusolver_available, GpuMagmaMatrixInverse, GpuMagmaSVD,
GpuMagmaCholesky, GpuMagmaQR)
GpuMagmaCholesky, GpuMagmaQR, GpuMagmaEigh)
_logger = logging.getLogger("theano.gpuarray.opt")
......@@ -2203,6 +2203,16 @@ def local_inplace_gpu_magma_matrix_inverse(node):
return [node.op.clone_inplace()(*node.inputs)]
# Eigen decomposition of a symmetric matrix
@register_opt('magma', 'fast_compile')
@op_lifter([nlinalg.Eigh])
@register_opt2([theano.tensor.nlinalg.Eigh], 'magma', 'fast_compile')
def local_gpu_magma_eigh(op, context_name, inputs, outputs):
if not config.magma.enabled:
return
return GpuMagmaEigh(UPLO=op.UPLO, compute_v=True)
# Singular Value Decomposition
@register_opt('magma', 'fast_compile')
@op_lifter([nlinalg.SVD])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论