From 167c090639b17bf9f88b7721c0c2f3f360a8faf6 Mon Sep 17 00:00:00 2001 From: Xiaochang Wu Date: Fri, 26 Nov 2021 06:08:20 +0000 Subject: [PATCH 1/3] Add check-gpu --- dev/check-gpu/Makefile | 22 ++++++++++++++++++++++ dev/check-gpu/build.sh | 3 +++ dev/check-gpu/check-gpu | Bin 0 -> 205816 bytes dev/check-gpu/check-gpu.cpp | 28 ++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 dev/check-gpu/Makefile create mode 100755 dev/check-gpu/build.sh create mode 100755 dev/check-gpu/check-gpu create mode 100644 dev/check-gpu/check-gpu.cpp diff --git a/dev/check-gpu/Makefile b/dev/check-gpu/Makefile new file mode 100644 index 000000000..2279ea298 --- /dev/null +++ b/dev/check-gpu/Makefile @@ -0,0 +1,22 @@ +CC := clang +CXX := clang++ +RM := rm -rf + +CFLAGS := -g -Wall -Wno-deprecated-declarations -fPIC -std=c++17 -fsycl + +OUTPUT = check-gpu + +OBJS := check-gpu.o + +all: $(OUTPUT) + +clean: + $(RM) $(OBJS) $(OUTPUT) + +$(OUTPUT): $(OBJS) + $(CXX) $(CFLAGS) -o $(OUTPUT) $(OBJS) $(LIBS) + +%.o: %.cpp + $(CXX) $(CFLAGS) -c -o $@ $< + +.PHONY: all clean diff --git a/dev/check-gpu/build.sh b/dev/check-gpu/build.sh new file mode 100755 index 000000000..d9eae582f --- /dev/null +++ b/dev/check-gpu/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +make diff --git a/dev/check-gpu/check-gpu b/dev/check-gpu/check-gpu new file mode 100755 index 0000000000000000000000000000000000000000..8c4374e233434decd2d03ad1883191dc1a05ac28 GIT binary patch literal 205816 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 Bc0&LF literal 0 HcmV?d00001 diff --git a/dev/check-gpu/check-gpu.cpp b/dev/check-gpu/check-gpu.cpp new file mode 100644 index 000000000..8f26af3a5 --- /dev/null +++ b/dev/check-gpu/check-gpu.cpp @@ -0,0 +1,28 @@ +#include + +int check_gpu() { + bool gpu_found = false; + + auto platforms = sycl::platform::get_platforms(); + for (auto &platform : platforms) { + auto devices = platform.get_devices(sycl::info::device_type::gpu); + if (!devices.empty()) { + gpu_found = true; + std::cout << "Platform: " + << platform.get_info() + << std::endl; + for (auto &device : devices) { + std::cout << "-- GPU device: " + << device.get_info() << std::endl; + } + } + } + if (!gpu_found) + std::cout << "No GPU found!" << std::endl; + + return gpu_found ? 0 : -1; +} + +int main (int argc, char * argv[]) { + return check_gpu(); +} \ No newline at end of file From f14b6a8863d9ce0d635711ee155b7e6210e3c6cf Mon Sep 17 00:00:00 2001 From: Xiaochang Wu Date: Fri, 26 Nov 2021 06:22:14 +0000 Subject: [PATCH 2/3] update --- dev/check-gpu/check-gpu | Bin 205816 -> 205816 bytes dev/check-gpu/check-gpu.cpp | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dev/check-gpu/check-gpu b/dev/check-gpu/check-gpu index 8c4374e233434decd2d03ad1883191dc1a05ac28..617c93b633e1b0844c63fd06838c36cf15e6ecbc 100755 GIT binary patch delta 141 zcmexyoae`Jo`x32EldVpjBB?WdNE0H>vLRZRbX4gD#B61#!<@3`;S#|FRMJ;8YW*M zR*48!X|_^UIiM0%wri}?93`w?+iOCZo=j&;G&e{xvD}{amPwCw`=n1yodPf+MP}w; iMi{4xg;`FHapUxvO3dbr52s&LVzy^wnl7l!{2TyO94I&d delta 143 zcmexyoae`Jo`x32EldVpjO(`>dNE0H8?p*=TxXSHTf@r7QNqSi%F6qXRdFw?Jlh&3 zUm;eB2v%vfQdTjb5?Quutil{6tWMjjLYbaSXEQNKGfp(vp7NGSk9GT$PfYCsFd;=| k=3qt`r;3GHPL6T&^qES`=8TW0UsPhYXJnZ!sLcEv09sfm4FCWD diff --git a/dev/check-gpu/check-gpu.cpp b/dev/check-gpu/check-gpu.cpp index 8f26af3a5..5bec5a068 100644 --- a/dev/check-gpu/check-gpu.cpp +++ b/dev/check-gpu/check-gpu.cpp @@ -9,14 +9,15 @@ int check_gpu() { if (!devices.empty()) { gpu_found = true; std::cout << "Platform: " - << platform.get_info() - << std::endl; + << platform.get_info() + << std::endl; for (auto &device : devices) { std::cout << "-- GPU device: " - << device.get_info() << std::endl; + << device.get_info() << std::endl; } } } + if (!gpu_found) std::cout << "No GPU found!" << std::endl; From bda04576413e21a66f153d3cec864c868ed60204 Mon Sep 17 00:00:00 2001 From: Xiaochang Wu Date: Fri, 26 Nov 2021 06:23:39 +0000 Subject: [PATCH 3/3] update --- dev/check-gpu/check-gpu.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/check-gpu/check-gpu.cpp b/dev/check-gpu/check-gpu.cpp index 5bec5a068..e10996276 100644 --- a/dev/check-gpu/check-gpu.cpp +++ b/dev/check-gpu/check-gpu.cpp @@ -9,15 +9,15 @@ int check_gpu() { if (!devices.empty()) { gpu_found = true; std::cout << "Platform: " - << platform.get_info() - << std::endl; + << platform.get_info() + << std::endl; for (auto &device : devices) { std::cout << "-- GPU device: " << device.get_info() << std::endl; } } } - + if (!gpu_found) std::cout << "No GPU found!" << std::endl;