Skip to content

Commit

Permalink
Removed tabs
Browse files Browse the repository at this point in the history
  • Loading branch information
ddemidov committed Nov 7, 2012
1 parent ce7eba9 commit 0db3438
Show file tree
Hide file tree
Showing 18 changed files with 6,053 additions and 6,017 deletions.
376 changes: 189 additions & 187 deletions examples/benchmark.cpp

Large diffs are not rendered by default.

78 changes: 40 additions & 38 deletions examples/cg.cpp
Expand Up @@ -9,12 +9,12 @@ typedef double real;
// Solve system of linear equations A u = f with conjugate gradients method. // Solve system of linear equations A u = f with conjugate gradients method.
// Input matrix is represented in CSR format (parameters row, col, and val). // Input matrix is represented in CSR format (parameters row, col, and val).
void cg_gpu( void cg_gpu(
const std::vector<size_t> &row, // Indices to col and val vectors. const std::vector<size_t> &row, // Indices to col and val vectors.
const std::vector<size_t> &col, // Column numbers of non-zero elements. const std::vector<size_t> &col, // Column numbers of non-zero elements.
const std::vector<real> &val, // Values of non-zero elements. const std::vector<real> &val, // Values of non-zero elements.
const std::vector<real> &rhs, // Right-hand side. const std::vector<real> &rhs, // Right-hand side.
std::vector<real> &x // In: initial approximation; out: result. std::vector<real> &x // In: initial approximation; out: result.
) )
{ {
const size_t n = x.size(); const size_t n = x.size();


Expand All @@ -37,23 +37,23 @@ void cg_gpu(
r = f - A * u; r = f - A * u;


for(uint iter = 0; max(fabs(r)) > 1e-8 && iter < n; iter++) { for(uint iter = 0; max(fabs(r)) > 1e-8 && iter < n; iter++) {
rho1 = sum(r * r); rho1 = sum(r * r);


if (iter == 0) { if (iter == 0) {
p = r; p = r;
} else { } else {
real beta = rho1 / rho2; real beta = rho1 / rho2;
p = r + beta * p; p = r + beta * p;
} }


q = A * p; q = A * p;


real alpha = rho1 / sum(p * q); real alpha = rho1 / sum(p * q);


u += alpha * p; u += alpha * p;
r -= alpha * q; r -= alpha * q;


rho2 = rho1; rho2 = rho1;
} }


// Get result to host. // Get result to host.
Expand All @@ -77,24 +77,24 @@ int main() {


row.push_back(0); row.push_back(0);
for(size_t i = 0; i < n; i++) { for(size_t i = 0; i < n; i++) {
if (i == 0 || i == n-1) { if (i == 0 || i == n-1) {
col.push_back(i); col.push_back(i);
val.push_back(1); val.push_back(1);
rhs.push_back(0); rhs.push_back(0);
row.push_back(row.back() + 1); row.push_back(row.back() + 1);
} else { } else {
col.push_back(i-1); col.push_back(i-1);
val.push_back(-1/(h*h)); val.push_back(-1/(h*h));


col.push_back(i); col.push_back(i);
val.push_back(2/(h*h)); val.push_back(2/(h*h));


col.push_back(i+1); col.push_back(i+1);
val.push_back(-1/(h*h)); val.push_back(-1/(h*h));


rhs.push_back(2); rhs.push_back(2);
row.push_back(row.back() + 3); row.push_back(row.back() + 3);
} }
} }


std::vector<real> x(n, 0); std::vector<real> x(n, 0);
Expand All @@ -105,9 +105,11 @@ int main() {
// Compute actual residual. // Compute actual residual.
double res = 0; double res = 0;
for(size_t i = 0; i < n; i++) { for(size_t i = 0; i < n; i++) {
double y = i * h; double y = i * h;
res = std::max(res, fabs(x[i] - y * (1 - y))); res = std::max(res, fabs(x[i] - y * (1 - y)));
} }


std::cout << "res = " << res << std::endl; std::cout << "res = " << res << std::endl;
} }

// vim: set et
18 changes: 10 additions & 8 deletions examples/devlist.cpp
Expand Up @@ -6,13 +6,15 @@ int main() {
std::cout << "OpenCL devices:" << std::endl << std::endl; std::cout << "OpenCL devices:" << std::endl << std::endl;
auto dev = device_list(Filter::All); auto dev = device_list(Filter::All);
for (auto d = dev.begin(); d != dev.end(); d++) { for (auto d = dev.begin(); d != dev.end(); d++) {
std::cout << " " << d->getInfo<CL_DEVICE_NAME>() << std::endl std::cout << " " << d->getInfo<CL_DEVICE_NAME>() << std::endl
<< " CL_PLATFORM_NAME = " << cl::Platform(d->getInfo<CL_DEVICE_PLATFORM>()).getInfo<CL_PLATFORM_NAME>() << std::endl << " CL_PLATFORM_NAME = " << cl::Platform(d->getInfo<CL_DEVICE_PLATFORM>()).getInfo<CL_PLATFORM_NAME>() << std::endl
<< " CL_DEVICE_MAX_COMPUTE_UNITS = " << d->getInfo<CL_DEVICE_MAX_COMPUTE_UNITS>() << std::endl << " CL_DEVICE_MAX_COMPUTE_UNITS = " << d->getInfo<CL_DEVICE_MAX_COMPUTE_UNITS>() << std::endl
<< " CL_DEVICE_HOST_UNIFIED_MEMORY = " << d->getInfo<CL_DEVICE_HOST_UNIFIED_MEMORY>() << std::endl << " CL_DEVICE_HOST_UNIFIED_MEMORY = " << d->getInfo<CL_DEVICE_HOST_UNIFIED_MEMORY>() << std::endl
<< " CL_DEVICE_GLOBAL_MEM_SIZE = " << d->getInfo<CL_DEVICE_GLOBAL_MEM_SIZE>() << std::endl << " CL_DEVICE_GLOBAL_MEM_SIZE = " << d->getInfo<CL_DEVICE_GLOBAL_MEM_SIZE>() << std::endl
<< " CL_DEVICE_LOCAL_MEM_SIZE = " << d->getInfo<CL_DEVICE_LOCAL_MEM_SIZE>() << std::endl << " CL_DEVICE_LOCAL_MEM_SIZE = " << d->getInfo<CL_DEVICE_LOCAL_MEM_SIZE>() << std::endl
<< " CL_DEVICE_MAX_CLOCK_FREQUENCY = " << d->getInfo<CL_DEVICE_MAX_CLOCK_FREQUENCY>() << std::endl << " CL_DEVICE_MAX_CLOCK_FREQUENCY = " << d->getInfo<CL_DEVICE_MAX_CLOCK_FREQUENCY>() << std::endl
<< std::endl; << std::endl;
} }
} }

// vim: set et
14 changes: 8 additions & 6 deletions examples/exclusive.cpp
Expand Up @@ -6,12 +6,14 @@ int main() {
Context ctx( Filter::Exclusive(Filter::Env) ); Context ctx( Filter::Exclusive(Filter::Env) );


if (ctx.size()) { if (ctx.size()) {
std::cout std::cout
<< "Locked devices:" << std::endl << "Locked devices:" << std::endl
<< ctx << std::endl << ctx << std::endl
<< "Press any key to exit: " << std::endl; << "Press any key to exit: " << std::endl;
std::cin.get(); std::cin.get();
} else { } else {
std::cout << "No available devices found." << std::endl; std::cout << "No available devices found." << std::endl;
} }
} }

// vim: set et
28 changes: 15 additions & 13 deletions examples/symbolic.cpp
Expand Up @@ -26,13 +26,13 @@ struct sys_func
const sym_value &R; const sym_value &R;


sys_func(value_type sigma, value_type b, const sym_value &R) sys_func(value_type sigma, value_type b, const sym_value &R)
: sigma(sigma), b(b), R(R) {} : sigma(sigma), b(b), R(R) {}


void operator()( const sym_state &x , sym_state &dxdt , value_type t ) const void operator()( const sym_state &x , sym_state &dxdt , value_type t ) const
{ {
dxdt[0] = sigma * (x[1] - x[0]); dxdt[0] = sigma * (x[1] - x[0]);
dxdt[1] = R * x[0] - x[1] - x[0] * x[2]; dxdt[1] = R * x[0] - x[1] - x[0] * x[2];
dxdt[2] = x[0] * x[1] - b * x[2]; dxdt[2] = x[0] * x[1] - b * x[2];
} }
}; };


Expand All @@ -55,9 +55,9 @@ int main( int argc , char **argv )


// State types that would become kernel parameters: // State types that would become kernel parameters:
sym_state sym_S = {{ sym_state sym_S = {{
sym_value::VectorParameter, sym_value::VectorParameter,
sym_value::VectorParameter, sym_value::VectorParameter,
sym_value::VectorParameter sym_value::VectorParameter
}}; }};


// Const kernel parameter. // Const kernel parameter.
Expand All @@ -74,16 +74,16 @@ int main( int argc , char **argv )
*/ */
// Symbolic stepper: // Symbolic stepper:
odeint::runge_kutta4< odeint::runge_kutta4<
sym_state , value_type , sym_state , value_type , sym_state , value_type , sym_state , value_type ,
odeint::range_algebra , odeint::default_operations odeint::range_algebra , odeint::default_operations
> sym_stepper; > sym_stepper;


sys_func sys(10.0, 8.0 / 3.0, sym_R); sys_func sys(10.0, 8.0 / 3.0, sym_R);
sym_stepper.do_step(std::ref(sys), sym_S, 0, dt); sym_stepper.do_step(std::ref(sys), sym_S, 0, dt);


auto kernel = vex::generator::build_kernel(ctx.queue(), "lorenz", body.str(), auto kernel = vex::generator::build_kernel(ctx.queue(), "lorenz", body.str(),
sym_S[0], sym_S[1], sym_S[2], sym_R sym_S[0], sym_S[1], sym_S[2], sym_R
); );


// Real state initialization: // Real state initialization:
value_type Rmin = 0.1 , Rmax = 50.0 , dR = ( Rmax - Rmin ) / value_type( n - 1 ); value_type Rmin = 0.1 , Rmax = 50.0 , dR = ( Rmax - Rmin ) / value_type( n - 1 );
Expand All @@ -101,9 +101,11 @@ int main( int argc , char **argv )


// Integration loop: // Integration loop:
for(value_type t = 0; t < t_max; t += dt) for(value_type t = 0; t < t_max; t += dt)
kernel(X, Y, Z, R); kernel(X, Y, Z, R);


std::vector< value_type > result( n ); std::vector< value_type > result( n );
vex::copy( X , result ); vex::copy( X , result );
cout << result[0] << endl; cout << result[0] << endl;
} }

// vim: set et

0 comments on commit 0db3438

Please sign in to comment.