浏览代码

follow-up on r15935: also disable non-blocking streams with old versions of cuda for matrix_as_vector

Samuel Thibault 9 年之前
父节点
当前提交
5c7a0254df
共有 1 个文件被更改,包括 14 次插入2 次删除
  1. 14 2
      tests/microbenchs/matrix_as_vector.c

+ 14 - 2
tests/microbenchs/matrix_as_vector.c

@@ -200,11 +200,19 @@ int main(int argc, char **argv)
 {
 	int ret;
 	unsigned devices;
+#ifdef STARPU_USE_CUDA
+	int cublas_version;
+#endif
 
 	ret = starpu_init(NULL);
 	if (ret == -ENODEV) return STARPU_TEST_SKIPPED;
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_init");
-	starpu_cublas_init();
+#ifdef STARPU_USE_CUDA
+	/* cublasSasum has synchronization issues when using a non-blocking stream */
+	cublasGetVersion(&cublas_version);
+	if (cublas_version >= 7050)
+		starpu_cublas_init();
+#endif
 
 	devices = starpu_cpu_worker_get_count();
 	if (devices)
@@ -227,7 +235,11 @@ int main(int argc, char **argv)
 
 error:
 	if (ret == -ENODEV) ret=STARPU_TEST_SKIPPED;
-	starpu_cublas_shutdown();
+#ifdef STARPU_USE_CUDA
+	if (cublas_version >= 7050)
+		starpu_cublas_shutdown();
+#endif
+
 	starpu_shutdown();
 	STARPU_RETURN(ret);
 }