summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lbm.org25
-rw-r--r--tangle/benchmark-ldc.cu21
2 files changed, 8 insertions, 38 deletions
diff --git a/lbm.org b/lbm.org
index afe1d23..059a579 100644
--- a/lbm.org
+++ b/lbm.org
@@ -5794,11 +5794,12 @@ In order to benchmark the performance limits of our LBM code this example implem
a lid driven cavity without any visual output.
#+BEGIN_SRC cpp :tangle tangle/benchmark-ldc.cu
+using T = float;
using DESCRIPTOR = descriptor::D3Q19;
#+END_SRC
-As 3D simulations are generally what is of relevance for practical applications we are
-using a =D3Q19= lattice of single and double precision values.
+As 3D simulations are generally what is of relevance for practical applications, we are
+using a =D3Q19= lattice of single precision values.
#+NAME: benchmark-ldc-setup-lattice
#+BEGIN_SRC cpp
@@ -5835,7 +5836,6 @@ The =simulate= function accepts a the cuboid configuration together with a step
and the floating point type to be used for lattice data and computations.
#+BEGIN_SRC cpp :tangle tangle/benchmark-ldc.cu
-template <typename T>
void simulate(descriptor::Cuboid<DESCRIPTOR> cuboid, std::size_t nStep) {
cudaSetDevice(0);
@@ -5866,7 +5866,7 @@ some very basic CLI parameter handling in the =main= function.
#+BEGIN_SRC cpp :tangle tangle/benchmark-ldc.cu
int main(int argc, char* argv[]) {
- if (argc < 3 || argc > 4) {
+ if (argc != 3) {
std::cerr << "Invalid parameter count" << std::endl;
return -1;
}
@@ -5874,22 +5874,7 @@ int main(int argc, char* argv[]) {
const std::size_t n = atoi(argv[1]);
const std::size_t steps = atoi(argv[2]);
- unsigned precision = 4;
- if (argc == 4) {
- precision = atoi(argv[3]);
- }
-
- switch (precision) {
- case 4:
- simulate<float>({ n, n, n}, steps);
- break;
- case 8:
- simulate<double>({ n, n, n}, steps);
- break;
- default:
- std::cerr << "Invalid precision" << std::endl;
- return -1;
- }
+ simulate({ n, n, n}, steps);
return 0;
}
diff --git a/tangle/benchmark-ldc.cu b/tangle/benchmark-ldc.cu
index 4de0ae5..1400547 100644
--- a/tangle/benchmark-ldc.cu
+++ b/tangle/benchmark-ldc.cu
@@ -8,9 +8,9 @@
#include <iostream>
+using T = float;
using DESCRIPTOR = descriptor::D3Q19;
-template <typename T>
void simulate(descriptor::Cuboid<DESCRIPTOR> cuboid, std::size_t nStep) {
cudaSetDevice(0);
@@ -58,7 +58,7 @@ void simulate(descriptor::Cuboid<DESCRIPTOR> cuboid, std::size_t nStep) {
}
int main(int argc, char* argv[]) {
- if (argc < 3 || argc > 4) {
+ if (argc != 3) {
std::cerr << "Invalid parameter count" << std::endl;
return -1;
}
@@ -66,22 +66,7 @@ int main(int argc, char* argv[]) {
const std::size_t n = atoi(argv[1]);
const std::size_t steps = atoi(argv[2]);
- unsigned precision = 4;
- if (argc == 4) {
- precision = atoi(argv[3]);
- }
-
- switch (precision) {
- case 4:
- simulate<float>({ n, n, n}, steps);
- break;
- case 8:
- simulate<double>({ n, n, n}, steps);
- break;
- default:
- std::cerr << "Invalid precision" << std::endl;
- return -1;
- }
+ simulate({ n, n, n}, steps);
return 0;
}