mirror of
https://github.com/fumiama/base16384-sycl.git
synced 2026-06-05 00:32:49 +08:00
fix(tests): wait out-of-loop
This commit is contained in:
29
.github/workflows/test.yml
vendored
29
.github/workflows/test.yml
vendored
@@ -44,12 +44,31 @@ jobs:
|
|||||||
# Install Visual Studio Build Tools and CMake
|
# Install Visual Studio Build Tools and CMake
|
||||||
choco install cmake visualstudio2022buildtools visualstudio2022-workload-vctools -y
|
choco install cmake visualstudio2022buildtools visualstudio2022-workload-vctools -y
|
||||||
|
|
||||||
# Download and install Intel oneAPI
|
# Download and install Intel oneAPI Base Toolkit using the web installer
|
||||||
Invoke-WebRequest -Uri "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/f5881e61-dcdc-40f1-9bd9-717081ac623c/intel-oneapi-base-toolkit-2025.2.1.46_offline.exe" -OutFile "install.exe"
|
$url = "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d91caaa0-7306-46ea-a519-79a0423e1903/w_BaseKit_p_2024.2.1.101_offline.exe"
|
||||||
./install.exe -s -a --silent --eula accept
|
$installer = "oneapi_installer.exe"
|
||||||
|
|
||||||
# List installed Files
|
Write-Host "Downloading Intel oneAPI Base Toolkit..."
|
||||||
ls "C:\Program Files (x86)\Intel\oneAPI"
|
Invoke-WebRequest -Uri $url -OutFile $installer -UseBasicParsing
|
||||||
|
|
||||||
|
if (Test-Path $installer) {
|
||||||
|
Write-Host "Installer downloaded successfully"
|
||||||
|
Write-Host "Installing Intel oneAPI Base Toolkit..."
|
||||||
|
Start-Process -FilePath $installer -ArgumentList "--silent", "--eula", "accept", "--components", "intel.oneapi.win.dpcpp-compiler" -Wait
|
||||||
|
Write-Host "Installation completed"
|
||||||
|
} else {
|
||||||
|
Write-Error "Failed to download installer"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
if (Test-Path "C:\Program Files (x86)\Intel\oneAPI") {
|
||||||
|
Write-Host "oneAPI installation verified"
|
||||||
|
Get-ChildItem "C:\Program Files (x86)\Intel\oneAPI" | Format-Table Name
|
||||||
|
} else {
|
||||||
|
Write-Error "oneAPI installation failed"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
- name: Build and Run Tests
|
- name: Build and Run Tests
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
|||||||
@@ -85,11 +85,11 @@ int main() {
|
|||||||
// test basic parallel kernel
|
// test basic parallel kernel
|
||||||
start_time = std::chrono::high_resolution_clock::now();
|
start_time = std::chrono::high_resolution_clock::now();
|
||||||
auto errn = base16384::errors::try_failed([&]() {
|
auto errn = base16384::errors::try_failed([&]() {
|
||||||
for (int j = 0; j < iter_count; j++) {
|
q.parallel_for(sycl::range<1>(N), [=](sycl::id<1> i) {
|
||||||
q.parallel_for(sycl::range<1>(N),
|
for (int j = 0; j < iter_count; j++) {
|
||||||
[=](sycl::id<1> i) { data[i] = base16384::test::kernels_basic(data[i]); });
|
data[i] = base16384::test::kernels_basic(data[i]);
|
||||||
}
|
}
|
||||||
q.wait();
|
}).wait();
|
||||||
});
|
});
|
||||||
end_time = std::chrono::high_resolution_clock::now();
|
end_time = std::chrono::high_resolution_clock::now();
|
||||||
duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
|
duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
|
||||||
@@ -115,14 +115,14 @@ int main() {
|
|||||||
|
|
||||||
start_time = std::chrono::high_resolution_clock::now();
|
start_time = std::chrono::high_resolution_clock::now();
|
||||||
errn = base16384::errors::try_failed([&]() {
|
errn = base16384::errors::try_failed([&]() {
|
||||||
for (int j = 0; j < iter_count; j++) {
|
q.parallel_for(sycl::nd_range<1>(N, work_group_size),
|
||||||
q.parallel_for(sycl::nd_range<1>(N, work_group_size),
|
[=](sycl::nd_item<1> item) { // sub-group size
|
||||||
[=](sycl::nd_item<1> item) { // sub-group size
|
const auto i = item.get_global_id(0);
|
||||||
const auto i = item.get_global_id(0);
|
for (int j = 0; j < iter_count; j++) {
|
||||||
data[i] = base16384::test::kernels_basic(data[i]);
|
data[i] = base16384::test::kernels_basic(data[i]);
|
||||||
});
|
}
|
||||||
}
|
})
|
||||||
q.wait();
|
.wait();
|
||||||
});
|
});
|
||||||
end_time = std::chrono::high_resolution_clock::now();
|
end_time = std::chrono::high_resolution_clock::now();
|
||||||
duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
|
duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
|
||||||
|
|||||||
Reference in New Issue
Block a user