Skip to content

Commit f558337

Browse files
committed
Enable velocityBench and SyclBench for cuda adapter
1 parent 1e0c021 commit f558337

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

unified-runtime/scripts/benchmarks/benches/syclbench.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def setup(self):
4343
f"-DCMAKE_CXX_COMPILER={options.sycl}/bin/clang++",
4444
f"-DCMAKE_C_COMPILER={options.sycl}/bin/clang",
4545
f"-DSYCL_IMPL=dpcpp",
46+
f"-DCMAKE_CXX_FLAGS=-fsycl -fsycl-targets=nvptx64-nvidia-cuda",
4647
]
4748

4849
run(configure_command, add_sycl=True)

unified-runtime/scripts/benchmarks/benches/velocity.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,18 @@
1616
import os
1717

1818

19+
def isCudaDependenciesAvailable():
20+
return options.cudnn_directory is not None and options.cublas_directory is not None
21+
22+
1923
class VelocityBench(Suite):
2024
def __init__(self, directory):
2125
if options.sycl is None:
2226
return
27+
if options.ur_adapter == "cuda" and not isCudaDependenciesAvailable():
28+
raise ValueError(
29+
"CuDnn and CuBlas libraries directory must be specified with cuda adapter."
30+
)
2331

2432
self.directory = directory
2533

@@ -66,6 +74,8 @@ def download_deps(self):
6674
return
6775

6876
def extra_cmake_args(self) -> list[str]:
77+
if options.ur_adapter == "cuda":
78+
return [f"-DUSE_NVIDIA_BACKEND=YES", f"-DUSE_SM=80"]
6979
return []
7080

7181
def ld_libraries(self) -> list[str]:
@@ -358,6 +368,12 @@ def download_deps(self):
358368

359369
def extra_cmake_args(self):
360370
oneapi = get_oneapi()
371+
if options.ur_adapter == "cuda":
372+
return [
373+
f"-DUSE_NVIDIA_BACKEND=YES",
374+
f"-DUSE_SM=80",
375+
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()} -L{options.cublas_directory} -L{options.cudnn_directory}",
376+
]
361377
return [
362378
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()}"
363379
]
@@ -415,6 +431,12 @@ def download_deps(self):
415431

416432
def extra_cmake_args(self):
417433
oneapi = get_oneapi()
434+
if options.ur_adapter == "cuda":
435+
return [
436+
f"-DUSE_NVIDIA_BACKEND=YES",
437+
f"-DUSE_SM=80",
438+
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()}",
439+
]
418440
return [
419441
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()}"
420442
]
@@ -452,6 +474,12 @@ def ld_libraries(self):
452474

453475
def extra_cmake_args(self):
454476
oneapi = get_oneapi()
477+
if options.ur_adapter == "cuda":
478+
return [
479+
f"-DUSE_NVIDIA_BACKEND=YES",
480+
f"-DUSE_SM=80",
481+
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()} -L{options.cublas_directory} -L{options.cudnn_directory}",
482+
]
455483
return [
456484
f"-DCMAKE_CXX_FLAGS=-O3 -fsycl -ffast-math -I{oneapi.dnn_include()} -I{oneapi.mkl_include()} -L{oneapi.dnn_lib()} -L{oneapi.mkl_lib()}"
457485
]

unified-runtime/scripts/benchmarks/main.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ def main(directory, additional_env_vars, save_name, compare_names, filter):
144144

145145
suites = (
146146
[
147-
ComputeBench(directory),
148147
VelocityBench(directory),
149148
SyclBench(directory),
150149
LlamaCppBench(directory),
@@ -155,6 +154,9 @@ def main(directory, additional_env_vars, save_name, compare_names, filter):
155154
else []
156155
)
157156

157+
if not options.ur_adapter == "cuda":
158+
suites.append(ComputeBench(directory))
159+
158160
benchmarks = []
159161

160162
for s in suites:
@@ -411,6 +413,18 @@ def validate_and_parse_env_args(env_args):
411413
help="The name of the results which should be used as a baseline for metrics calculation",
412414
default=options.current_run_name,
413415
)
416+
parser.add_argument(
417+
"--cudnn_directory",
418+
type=str,
419+
help="Directory for cudnn library",
420+
default=None,
421+
)
422+
parser.add_argument(
423+
"--cublas_directory",
424+
type=str,
425+
help="Directory for cublas library",
426+
default=None,
427+
)
414428

415429
args = parser.parse_args()
416430
additional_env_vars = validate_and_parse_env_args(args.env)
@@ -434,6 +448,8 @@ def validate_and_parse_env_args(env_args):
434448
options.iterations_stddev = args.iterations_stddev
435449
options.build_igc = args.build_igc
436450
options.current_run_name = args.relative_perf
451+
options.cudnn_directory = args.cudnn_directory
452+
options.cublas_directory = args.cublas_directory
437453

438454
if args.build_igc and args.compute_runtime is None:
439455
parser.error("--build-igc requires --compute-runtime to be set")

0 commit comments

Comments
 (0)