cuda_delta_() - JaneliaSciComp/JRCLUST GitHub Wiki
CUDA (GPU) function that computes the distance (delta) parameter for DPCLUS clustering algorithm.
- Calculate the distance separation (Delta) for spiking events whose peak site occurs at the site K (n1 spikes).
- Delta: min. distance separation with neighbor having a higher density (rho). See DPCLUS for detail
- Neighboring events include those whose peak is at site K (n1 events), or whose second highest peak is at site K (n2 spikes). Thus, there are n1+n2 neighboring events for n1 events at site K.
- To deal with probe drift, events that occur close in time are considered as neighbors. If [P]].[[nTime_clu]]=1, all neighbors (n1+n2) are considered. Otherwise, temporally proximal neighbors are considered such that ](/JaneliaSciComp/JRCLUST/wiki/to_i-to_j|-<-(n1+n2)/[[P).nTime_clu; to_i: temporal order of spike i; to_j: temporal order of spike j (Graphics to be added)
Syntax
- [vrDelta1, viNneigh1] = cuda_delta_(mrFet12, viiSpk12_ord, viiRho12_ord, n1, n2, dc2, P)
Input
- mrFet12: Feature matrix containing spiking events centered at site K (nFeatures x (n1+n2): single)
- viiSpk12_ord: Temporal order of spikes for a given set of spikes ((n1+n2) x 1: int32); 1 <= viiSpk12_ord <= (n1+n2).
- viiRho12_ord: Sorted order (descending) of Rho ((n1+n2) x 1: int32); 1 <= viiSpk12_ord <= (n1+n2).
- n1: number of spikes whose peak (S0.viSite_spk) occurs at the site K
- n2: number of spikes whose second highest peak (S0.viSite2_spk) occurs at the site K
- dc2: distance-cutoff squared
- P: Parameters struct (P)
Output
- vrDelta1: Distance separation (n1 x 1: single)
- viNneigh1: Index of the nearest neighbor (n1 x 1: uint32)
Operations
- Initialize the CUDA kernel object
- Allocate GPU memory
- Run the CUDA code to compute rho (jrc3_cuda_rho.cu)