aboutsummaryrefslogtreecommitdiff
path: root/mlir/test/Conversion/GPUCommon
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2023-05-15 14:55:45 -0700
committerAart Bik <ajcbik@google.com>2023-05-19 12:46:11 -0700
commit981cf1678d6f3399d3fb5e16434669f3992ac6fd (patch)
treeedbcc013e6661d5c9c16a04f031ee541f40f5bf6 /mlir/test/Conversion/GPUCommon
parent94063cac47fb2d07e92d6922761e182f1e657764 (diff)
downloadllvm-981cf1678d6f3399d3fb5e16434669f3992ac6fd.zip
llvm-981cf1678d6f3399d3fb5e16434669f3992ac6fd.tar.gz
llvm-981cf1678d6f3399d3fb5e16434669f3992ac6fd.tar.bz2
[mlir][sparse][gpu] add SpMM to GPU ops dialect
Reviewed By: ThomasRaoux, K-Wu Differential Revision: https://reviews.llvm.org/D150618
Diffstat (limited to 'mlir/test/Conversion/GPUCommon')
-rw-r--r--mlir/test/Conversion/GPUCommon/lower-sparse-to-gpu-runtime-calls.mlir32
1 files changed, 31 insertions, 1 deletions
diff --git a/mlir/test/Conversion/GPUCommon/lower-sparse-to-gpu-runtime-calls.mlir b/mlir/test/Conversion/GPUCommon/lower-sparse-to-gpu-runtime-calls.mlir
index 6f163f9..dcef273 100644
--- a/mlir/test/Conversion/GPUCommon/lower-sparse-to-gpu-runtime-calls.mlir
+++ b/mlir/test/Conversion/GPUCommon/lower-sparse-to-gpu-runtime-calls.mlir
@@ -10,7 +10,7 @@ module attributes {gpu.container_module} {
// CHECK: llvm.call @mgpuCreateCoo
// CHECK: llvm.call @mgpuCreateDnVec
// CHECK: llvm.call @mgpuSpMVBufferSize
- // CHECK: llvm.call @mgpuSpM
+ // CHECK: llvm.call @mgpuSpMV
// CHECK: llvm.call @mgpuDestroySpMat
// CHECK: llvm.call @mgpuDestroyDnVec
// CHECK: llvm.call @mgpuDestroySparseEnv
@@ -32,6 +32,36 @@ module attributes {gpu.container_module} {
return
}
+ // CHECK-LABEL: func @matmul
+ // CHECK: llvm.call @mgpuStreamCreate
+ // CHECK: llvm.call @mgpuMemAlloc
+ // CHECK: llvm.call @mgpuMemAlloc
+ // CHECK: llvm.call @mgpuCreateSparseEnv
+ // CHECK: llvm.call @mgpuCreateCsr
+ // CHECK: llvm.call @mgpuCreateDnMat
+ // CHECK: llvm.call @mgpuSpMMBufferSize
+ // CHECK: llvm.call @mgpuSpMM
+ // CHECK: llvm.call @mgpuDestroySpMat
+ // CHECK: llvm.call @mgpuDestroyDnMat
+ // CHECK: llvm.call @mgpuDestroySparseEnv
+ // CHECK: llvm.call @mgpuStreamSynchronize
+ // CHECK: llvm.call @mgpuStreamDestroy
+ func.func @matmul(%arg0: index) {
+ %token0 = gpu.wait async
+ %mem1, %token1 = gpu.alloc async [%token0] (%arg0) : memref<?xindex>
+ %mem2, %token2 = gpu.alloc async [%token1] (%arg0) : memref<?xf64>
+ %env, %token3 = gpu.create_sparse_env async [%token2]
+ %spmat, %token4 = gpu.create_csr async [%token3] %arg0, %arg0, %arg0, %mem1, %mem1, %mem2 : memref<?xindex>, memref<?xindex>, memref<?xf64>
+ %dnmat, %token5 = gpu.create_dn_mat async [%token4] %arg0, %arg0, %mem2 : memref<?xf64>
+ %bufferSz, %token6 = gpu.spmm_buffer_size async [%token5] %env, %spmat, %dnmat, %dnmat
+ %token7 = gpu.spmm async [%token6] %env, %spmat, %dnmat, %dnmat, %mem2 : memref<?xf64>
+ %token8 = gpu.destroy_sp_mat async [%token7] %spmat
+ %token9 = gpu.destroy_dn_mat async [%token8] %dnmat
+ %token10 = gpu.destroy_sparse_env async [%token9] %env
+ gpu.wait [%token10]
+ return
+ }
+
}