def METHOD_NAME():
    b, m, n, k = tuple(dace.symbol(k) for k in 'bmnk')
    with change_default(blas, "cuBLAS"):
        @dace.program
        def bmmtest(A: dace.float64[b, m, k], B: dace.float64[b, k, n], C: dace.float64[b, m, n]):
            C[:] = A @ B
        sdfg = bmmtest.to_sdfg()
        sdfg.apply_gpu_transformations()
        csdfg = sdfg.compile()
        b, m, n, k = 3, 32, 31, 30
        x = np.random.rand(b, m, k)
        y = np.random.rand(b, k, n)
        z = np.zeros([b, m, n], np.float64)
        csdfg(A=x, B=y, C=z, b=b, m=m, n=n, k=k)
    ref = x @ y
    diff = np.linalg.norm(ref - z)
    print('Difference:', diff)
    assert diff < 1e-6