Skip to content
jamesjun edited this page Dec 6, 2017 · 3 revisions

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 |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)
Clone this wiki locally