给定 M × K 的 float 矩阵 A 和 K × N 的 float 矩阵 B,把它们的乘积写进 M × N 的矩阵 C:
C[i][j] = A[i][0] * B[0][j] + A[i][1] * B[1][j] + ... + A[i][K-1] * B[K-1][j]
三个矩阵都按行存放:A[i][k] 在 A[i * K + k],B[k][j] 在 B[k * N + j],C[i][j] 在 C[i * N + j]。
solve,签名保持不变。
extern "C" void solve(const float* A, const float* B, float* C, int M, int N, int K)def solve(A: torch.Tensor, B: torch.Tensor, C: torch.Tensor, M: int, N: int, K: int)
(A、B、C 的形状分别是 (M, K)、(K, N)、(M, N))A、B、C 已经在 GPU 上。不要修改 A 和 B。C;进入 solve 时 C 里的内容是未定义的。tl.dot 对 float32 输入默认用 TF32,要传 input_precision="ieee"。输入:A = [[1.0, 2.0, 3.0], B = [[ 7.0, 8.0],
[4.0, 5.0, 6.0]] [ 9.0, 10.0],
[11.0, 12.0]] M = 2, N = 2, K = 3
输出:C = [[ 58.0, 64.0],
[139.0, 154.0]]
C[0][0] = 1 × 7 + 2 × 9 + 3 × 11 = 58。
输入:A = [[1.0], B = [[4.0, 5.0]] M = 3, N = 2, K = 1
[2.0],
[3.0]]
输出:C = [[ 4.0, 5.0],
[ 8.0, 10.0],
[12.0, 15.0]]
A、B 的每个元素都在 [-1, 1] 内M = 8192,N = 6144,K = 4096TODO
CUDA · T4
载入中…
CUDA · T4
载入中…
CUDA · T4
载入中…