mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-24 13:57:17 -04:00
49 lines
1.6 KiB
Common Lisp
Executable file
49 lines
1.6 KiB
Common Lisp
Executable file
//#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
|
|
|
|
typedef struct latLong
|
|
{
|
|
float lat;
|
|
float lng;
|
|
} LatLong;
|
|
|
|
__kernel void Fan1(__global float *m_dev,
|
|
__global float *a_dev,
|
|
__global float *b_dev,
|
|
const int size,
|
|
const int t) {
|
|
int globalId = get_global_id(0);
|
|
|
|
if (globalId < size-1-t) {
|
|
*(m_dev + size * (globalId + t + 1)+t) = *(a_dev + size * (globalId + t + 1) + t) / *(a_dev + size * t + t);
|
|
}
|
|
}
|
|
|
|
|
|
__kernel void Fan2(__global float *m_dev,
|
|
__global float *a_dev,
|
|
__global float *b_dev,
|
|
const int size,
|
|
const int t) {
|
|
int globalId = get_global_id(0);
|
|
|
|
int globalIdx = get_global_id(0);
|
|
int globalIdy = get_global_id(1);
|
|
if (globalIdx < size-1-t && globalIdy < size-t) {
|
|
a_dev[size*(globalIdx+1+t)+(globalIdy+t)] -= m_dev[size*(globalIdx+1+t)+t] * a_dev[size*t+(globalIdy+t)];
|
|
|
|
if(globalIdy == 0){
|
|
b_dev[globalIdx+1+t] -= m_dev[size*(globalIdx+1+t)+(globalIdy+t)] * b_dev[t];
|
|
}
|
|
}
|
|
// One dimensional
|
|
// int globalIdx = globalId % size;
|
|
// int globalIdy = globalId / size;
|
|
//
|
|
// if (globalIdx < size-1-t && globalIdy < size-t) {
|
|
// a_dev[size*(globalIdx+1+t)+(globalIdy+t)] -= m_dev[size*(globalIdx+1+t)+t] * a_dev[size*t+(globalIdy+t)];
|
|
// }
|
|
// if(globalIdy == 0){
|
|
// b_dev[globalIdx+1+t] -= m_dev[size*(globalIdx+1+t)+(globalIdy+t)] * b_dev[t];
|
|
// }
|
|
|
|
}
|