在 PG 中支持矩阵乘法
在 PG 中支持矩阵乘法 Tensor Dancer 项目核心目标之一,是在 PostgreSQL 中提供张量计算能力。这里我们从一个最简单的需求开始:支持矩阵乘法,使我们可以对 pgvector 的向量使用 PCA 矩阵降维。 关键代码 将一个n维向量V降到m维,可以简单的理解为用一个 n*m的矩阵 T 乘以 n 的转置, $$ 这是一个非常基本的线性代数算法,在 BLAS 库中提供了通用的矩阵乘法。我们可以简单的调用这个函数。 int mul_matrix_vector_f32(struct Matrix *matrix, float *vector, float *result) { cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, (int) matrix->rows, 1, (int) matrix->columns, 1.0, (float *) matrix->data, (int) matrix->columns, vector, 1, 0.0, result,...
[Read More]