Aquila
2.0 prealpha
Cognitive Robotics Architecture
|
#include <cuda.h>
#include <cuda_runtime.h>
Functions | |
__global__ void | propogateInputKernel (float *inputs, float *weights, float *outputs, int numInputs, int sequenceId, int numOutputs) |
Calculates the euclidean distance between input vector and weight vector of a neuron and saves these distances in the output array. | |
__global__ void | findBestMatchPass1Kernel (float *outputs, int *winner, int numOutputs) |
Finds the best matching unit having the lowest euclidean distance - part 1/2. | |
__global__ void | findBestMatchPass2Kernel (float *outputs, int *winner, int numOutputs) |
Finds the best matching unit having the lowest euclidean distance - part 2/2. | |
__global__ void | updateWeightsKernel (float *inputs, float *weights, int *winner, float sigma, int numInputs, int sequenceId, int numOutputs, int neighbourhoodSize, float initLearningRate, int numIterations, int currentIteration) |
Updates weights of the self-organising map. | |
void | findBestMatchOnDevice (dim3 grid, dim3 block, float *outputs, int *winner, int numOutputs) |
Wrapper for findBestMatchPass1Kernel and findBestMatchPass2Kernel. | |
void | propogateInputOnDevice (dim3 grid, dim3 block, float *inputs, float *weights, float *outputs, int numInputs, int sequenceId, int numOutputs) |
Wrapper for propogateInputKernel. | |
void | updateWeightsOnDevice (dim3 grid, dim3 block, float *inputs, float *weights, int *winner, float sigma, int numInputs, int sequenceId, int numOutputs, int neighbourhoodSize, float initLearningRate, int numIterations, int currentIteration) |
Wrapper for updateWeightsKernel. | |
void findBestMatchOnDevice | ( | dim3 | grid, |
dim3 | block, | ||
float * | outputs, | ||
int * | winner, | ||
int | numOutputs | ||
) |
Wrapper for findBestMatchPass1Kernel and findBestMatchPass2Kernel.
[in] | grid | - CUDA grid size |
[in] | block | - CUDA block size |
[in] | outputs | - outputs |
[in] | numOutputs | - number of outputs |
[out] | winner | - winner |
__global__ void findBestMatchPass1Kernel | ( | float * | outputs, |
int * | winner, | ||
int | numOutputs | ||
) |
Finds the best matching unit having the lowest euclidean distance - part 1/2.
[in] | outputs | - outputs |
[in] | numOutputs | - number of outputs |
[out] | winner | - winner |
__global__ void findBestMatchPass2Kernel | ( | float * | outputs, |
int * | winner, | ||
int | numOutputs | ||
) |
Finds the best matching unit having the lowest euclidean distance - part 2/2.
[in] | outputs | - outputs |
[in] | numOutputs | - number of outputs |
[out] | winner | - winner |
__global__ void propogateInputKernel | ( | float * | inputs, |
float * | weights, | ||
float * | outputs, | ||
int | numInputs, | ||
int | sequenceId, | ||
int | numOutputs | ||
) |
Calculates the euclidean distance between input vector and weight vector of a neuron and saves these distances in the output array.
[in] | inputs | - inputs |
[in] | weights | - weights |
[in] | numInputs | - number of inputs |
[in] | sequenceId | - sequence id |
[in] | numOutputs | - number of outputs |
[out] | outputs | - outputs |
void propogateInputOnDevice | ( | dim3 | grid, |
dim3 | block, | ||
float * | inputs, | ||
float * | weights, | ||
float * | outputs, | ||
int | numInputs, | ||
int | sequenceId, | ||
int | numOutputs | ||
) |
Wrapper for propogateInputKernel.
[in] | grid | - CUDA grid size |
[in] | block | - CUDA block size |
[in] | inputs | - inputs |
[in] | weights | - weights |
[in] | numInputs | - number of inputs |
[in] | sequenceId | - sequence id |
[in] | numOutputs | - number of outputs |
[out] | outputs | - outputs |
__global__ void updateWeightsKernel | ( | float * | inputs, |
float * | weights, | ||
int * | winner, | ||
float | sigma, | ||
int | numInputs, | ||
int | sequenceId, | ||
int | numOutputs, | ||
int | neighbourhoodSize, | ||
float | initLearningRate, | ||
int | numIterations, | ||
int | currentIteration | ||
) |
Updates weights of the self-organising map.
[in] | inputs | - inputs |
[in] | winner | - winner |
[in] | sigma | - sigma |
[in] | numInputs | - number of inputs |
[in] | sequenceId | - sequence id |
[in] | numOutputs | - number of outputs |
[in] | neighbourhoodSize | - neighbourhood size |
[in] | numIterations | - number of iterations |
[in] | currentIteration | - current iteration |
[out] | weights | - weights |
void updateWeightsOnDevice | ( | dim3 | grid, |
dim3 | block, | ||
float * | inputs, | ||
float * | weights, | ||
int * | winner, | ||
float | sigma, | ||
int | numInputs, | ||
int | sequenceId, | ||
int | numOutputs, | ||
int | neighbourhoodSize, | ||
float | initLearningRate, | ||
int | numIterations, | ||
int | currentIteration | ||
) |
Wrapper for updateWeightsKernel.
[in] | grid | - CUDA grid size |
[in] | block | - CUDA block size |
[in] | inputs | - inputs |
[in] | winner | - winner |
[in] | sigma | - sigma |
[in] | numInputs | - number of inputs |
[in] | sequenceId | - sequence id |
[in] | numOutputs | - number of outputs |
[in] | neighbourhoodSize | - neighbourhood size |
[in] | numIterations | - number of iterations |
[in] | currentIteration | - current iteration |
[out] | weights | - weights |