Windowed All- k NN Search over Multidimensional Array Data from - - PowerPoint PPT Presentation

windowed all k nn search over multidimensional array data
SMART_READER_LITE
LIVE PREVIEW

Windowed All- k NN Search over Multidimensional Array Data from - - PowerPoint PPT Presentation

Windowed All- k NN Search over Multidimensional Array Data from Medical Imaging GTC 2016 San Jose, CA, USA Dimitrios Floros 1 Alexandros-Stavros Iliopoulos 2 Nikos Pitsianis 1 , 2 Xiaobai Sun 2 1 Department of Electrical and Computer


slide-1
SLIDE 1

Windowed All-kNN Search

  • ver

Multidimensional Array Data from Medical Imaging

GTC 2016 – San Jose, CA, USA

Dimitrios Floros1 Alexandros-Stavros Iliopoulos2 Nikos Pitsianis1,2 Xiaobai Sun2

1Department of Electrical and Computer Engineering, Aristotle University of Thessaloniki 2Department of Computer Science, Duke University

April 06, 2016

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 1 / 35

slide-2
SLIDE 2

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 2 / 35

slide-3
SLIDE 3

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 3 / 35

slide-4
SLIDE 4

Windowed all-kNN

  • Data objects: Q image arrays, M × N pixels, F features (similarly for 3D-image arrays)

F M N b F M N b F M N b

· · · · · ·

U V U V U V

  • Every pixel is a query pixel (all-kNN)
  • Find k-nearest neighbors for each pixel within a U × V window:

– affinity in the feature space, RF – proximity (window) in the spatial domain, Ω ⊕ ℳ × 𝒪

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 4 / 35

slide-5
SLIDE 5

Applications: hyperspectral/multispectral imaging

sample bands from single HSI face object1 (Q = 148 objects)

Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.4
  • 0.2

0.2 0.4 Left cheek Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.4
  • 0.3
  • 0.2
  • 0.1

0.1 0.2 0.3 0.4 Right Cheek Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.2
  • 0.1

0.1 0.2 0.3 Forehead Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.4
  • 0.3
  • 0.2
  • 0.1

0.1 0.2 0.3 Left Eye Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.4
  • 0.3
  • 0.2
  • 0.1

0.1 0.2 0.3 0.4 Right Eye Wavelength (nm) 700 800 900 1000 1100 Amplitude

  • 0.2
  • 0.1

0.1 0.2 0.3 Mouth

1Denes et al. CMU-RI-TR-02-25, 2002

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 5 / 35

slide-6
SLIDE 6

Applications: respiratory deformation vector fields

XCAT1 4D-CT coronal slice and super-imposed deformation field vectors t1 t2 t3 t4 tT

. . .

respiratory trajectories as voxel-wise features

1Segars et al. Medical Physics 35, 2008

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 6 / 35

slide-7
SLIDE 7

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 7 / 35

slide-8
SLIDE 8

Pairwise distance calculation

  • Pairwise distance functions for two feature vectors, x and y

‖x ⊗ y‖2

2 = ⟨ x, x ⟩ + ⟨ y, y ⟩ ⊗ 2⟨ x, y ⟩ ⊙ 0

dcos(x, y) = 1 ⊗ ⟨ x, y ⟩

√︁

⟨ x, x ⟩⟨ y, y ⟩ ∈ (0, 2)

  • Windowed kNN⊗

⊃ k nearest (w.r.t. feature-space) pixels within window

  • ⟨ x, y ⟩ inner products are the most expensive operations
  • Symmetry issues

– arithmetic complexity (factor of 2) – data locality (factor of ?)

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 8 / 35

slide-9
SLIDE 9

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 9 / 35

slide-10
SLIDE 10

Single-object distance matrix

X (image array)

F M N b U V

D (nest-banded distance matrix)

  • (i, j) block in D corresponds to rows i and j in X
  • MN≤UV non-zero entries in D, instead of (MN)2

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 10 / 35

slide-11
SLIDE 11

Single-object distance matrix

X (image array)

F M N b U V

D (nest-banded distance matrix)

  • (i, j) block in D corresponds to rows i and j in X
  • MN≤UV non-zero entries in D, instead of (MN)2

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 10 / 35

slide-12
SLIDE 12

Two basic module options: introduction

baseline: (i, j) ⊂ ⊃ (ui, vj) distances sliding window (𝒱i, 𝒲j) each query pixel (i, j) ∈ (ℳ, 𝒪) sliding image (ℳu, 𝒪v) each window offset (u, v) ∈ (𝒱, 𝒲)

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 11 / 35

slide-13
SLIDE 13

Baseline (each query pixel – each window offset)

(ui, vj) ∈ (i + 𝒱, j + 𝒲) : D[(i, j), (ui, vj)] = ⟨ X(:, i, j), X(:, ui, vj) ⟩

N + 2bN M + 2bM M × N M × N

f o r ( i , j ) = ( 1 :m, 1 : n ) f o r (u , v ) = ( i+U, j+V) D( i , j , u , v ) = X( : , i , j ) ' ∗ X( : , u , v ) ; % loop

  • ver

query p i x e l s % loop

  • ver

window p i x e l s around query % vector - v e c t o r product Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 12 / 35

slide-14
SLIDE 14

Baseline (each query pixel – each window offset)

(ui, vj) ∈ (i + 𝒱, j + 𝒲) : D[(i, j), (ui, vj)] = ⟨ X(:, i, j), X(:, ui, vj) ⟩

M × N M × N

f o r ( i , j ) = ( 1 :m, 1 : n ) f o r (u , v ) = ( i+U, j+V) D( i , j , u , v ) = X( : , i , j ) ' ∗ X( : , u , v ) ; % loop

  • ver

query p i x e l s % loop

  • ver

window p i x e l s around query % vector - v e c t o r product Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 12 / 35

slide-15
SLIDE 15

Sliding window (each query pixel)

(𝒱i, 𝒲j) ⊕ (i + 𝒱, j + 𝒲) : D[(i, j), (𝒱i, 𝒲j)] = ⟨ X(:, i, j), X(:, 𝒱i, 𝒲j) ⟩

f o r ( i , j ) = ( 1 :m, 1 : n ) D( i , j , i+U, j+V) = X( : , i , j ) ' ∗ X( : , i+U, j+V ) ; % loop

  • ver

query p i x e l s % vector - matrix ( p i x e l - window ) product Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 13 / 35

slide-16
SLIDE 16

Sliding image (each window offset)

(u, v) ∈ (𝒱, 𝒲) : D[(ℳ, 𝒪), (ℳ + u, 𝒪 + v)] =

∑︂

f

X(f , ℳ, 𝒪) * X(f , ℳ + u, 𝒪 + v)

f o r (u , v ) = (U,V) Y = X( : ,M,N) . ∗ X( : ,M +u ,N+v ) ; D(M,N,M +u ,N +v ) = sum(Y , 1 ) ; % loop

  • ver

window

  • f f s e t s

% Hadamard matrix product ( query and (u , v ) - o f f s e t p i x e l s ) % r e d u c t i o n along f e a t u r e dimension Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 14 / 35

slide-17
SLIDE 17

Two basic module options: summary

baseline: (i, j) ⊂ ⊃ (ui, vj) distances sliding window (𝒱i, 𝒲j) each query pixel (i, j) ∈ (ℳ, 𝒪) matrix-vector product

– (1 × F) ≤ (F × UV ) – MN products – difficult to exploit symmetry – good for higher F

sliding image (ℳu, 𝒪v) each window offset (u, v) ∈ (𝒱, 𝒲) Hadamard array product & reduction along features

– (F × M × N) * (F × M × N) – UV products + UV F-vector reductions – easy to exploit symmetry – good for low F

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 15 / 35

slide-18
SLIDE 18

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 16 / 35

slide-19
SLIDE 19

Multiple objects

F M N b F M N b F M N b

· · · · · ·

U V U V U V

Find the k-nearest neighbors of each pixel inside a window amongst all objects, inclusively or exclusively.

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 17 / 35

slide-20
SLIDE 20

Two basic multi-object modules: introduction

baseline: (i, j, q1) ⊂ ⊃ (u, v, q2) distances each multi-object query pixel (i, j, 𝒭) each multi-object window offset (u, v, 𝒭) sliding windows (𝒱i, 𝒲j, 𝒭) each query pixel set (i, j, 𝒭); (i, j) ∈ (ℳ, 𝒪) sliding images (ℳu, 𝒪v, 𝒭) each object and window offset (u, v, q) ∈ (𝒱, 𝒲, 𝒭)

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 18 / 35

slide-21
SLIDE 21

Multi-object baseline (each query pixel – each window offset – all objects)

(ui, vj) ∈ (i + 𝒱, j + 𝒲) : D[(i, j), (ui, vj), (𝒭, 𝒭)] = ⟨ X(:, i, j, 𝒭), X(:, ui, vj, 𝒭) ⟩

f o r ( i , j ) = ( 1 :m, 1 : n ) f o r (u , v ) = ( i+U, j+V) D( i , j , u , v ,Q,Q) = X( : , i , j ,Q) ' ∗ X( : , u , v ,Q) ; % loop

  • ver

query p i x e l s % loop

  • ver

window p i x e l s around query % matrix - matrix product Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 19 / 35

slide-22
SLIDE 22

Sliding window (each query pixel – all objects)

(𝒱i, 𝒲j) ⊕ (i + 𝒱, j + 𝒲) : D[(i, j), (𝒱i, 𝒲j), (𝒭, 𝒭)] = ⟨ X(:, i, j, 𝒭), X(:, 𝒱i, 𝒲j, 𝒭) ⟩

f o r ( i , j ) = ( 1 :m, 1 : n ) D( i , j , i+U, j+V,Q,Q) = X( : , i , j ,Q) ' ∗ X( : , i+U, j+V,Q) ; % loop

  • ver

query p i x e l s % batched matrix - matrix products Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 20 / 35

slide-23
SLIDE 23

Sliding image (each window offset – each object)

(u, v, q) ∈ (𝒱, 𝒲, 𝒭) : D[(ℳ, 𝒪), (ℳ + u, 𝒪 + v), (𝒭, q)] =

∑︂

f

X(f , ℳ, 𝒪, 𝒭) * X(f , ℳ + u, 𝒪 + v, q)

f o r (u , v , q ) = (U,V,Q) Y = X( : ,M,N,Q) . ∗ X( : ,M +u ,N +v , q ) ; D(M,N,M +u ,N +v ,Q, q ) = sum(Y , 1 ) ; % loop

  • ver

window

  • f f s e t s

and

  • b j e c t s

% batched Hadamard matrix product ( query and (u , v ) - o f f s e % r e d u c t i o n along f e a t u r e dimension Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 21 / 35

slide-24
SLIDE 24

Two basic multi-object modules: summary

baseline: (i, j, a1) ⊂ ⊃ (u, v, a2) distances sliding windows (𝒱i, 𝒲j, 𝒭) each query pixel set (i, j, 𝒭) matrix-matrix products

– (Q × F) ≤ (F × UVQ) – MN products – difficult to exploit symmetry – good for high F & high Q

sliding images (ℳu, 𝒪v, 𝒭) each object and window offset (u, v, 𝒭) Hadamard array products & reduction along features

– Q [(F × M × N × Q) * (F × M × N)] – UV products + UV F-vector reductions – easy to exploit symmetry – good for low F & low Q

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 22 / 35

slide-25
SLIDE 25

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 23 / 35

slide-26
SLIDE 26

Distance matrix compression

  • Only upper triangular matrix computed

Banded Matrix

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-27
SLIDE 27

Distance matrix compression

  • Only upper triangular matrix computed
  • Row packing for upper triangular

Banded Matrix Row Packing

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-28
SLIDE 28

Distance matrix compression

  • Only upper triangular matrix computed
  • Row packing for upper triangular
  • Column packing for lower triangular

Banded Matrix Row Packing Column Packing

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-29
SLIDE 29

Distance matrix compression

  • Only upper triangular matrix computed
  • Row packing for upper triangular
  • Column packing for lower triangular
  • Shift lower triangular and change to row

packing

Banded Matrix Row Packing Column Packing Column to Row

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-30
SLIDE 30

Distance matrix compression

  • Only upper triangular matrix computed
  • Row packing for upper triangular
  • Column packing for lower triangular
  • Shift lower triangular and change to row

packing

  • One query pixel’s computed distances

Banded Matrix Row Packing Column Packing Column to Row

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-31
SLIDE 31

Distance matrix compression

  • Only upper triangular matrix computed
  • Row packing for upper triangular
  • Column packing for lower triangular
  • Shift lower triangular and change to row

packing

  • One query pixel’s computed distances

Compressed Matrix

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 24 / 35

slide-32
SLIDE 32

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 25 / 35

slide-33
SLIDE 33

k-nearest neighbor selection

Identify k smallest distances of multiple query rows

  • Usage of Truncated bitonic sort1
  • Multiple query pixels processed in parallel

Distance Matrix Sorting Block

1Sismanis et al. [2012] HPEC, Pitsianis [GTC2012] Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 26 / 35

slide-34
SLIDE 34

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 27 / 35

slide-35
SLIDE 35

Sliding Image VS Sliding Window

CPU: 4 x AMD Opteron(tm) Processor 6376 @ 2.3 GHz (4 x 16 cores), 128 GB DDR3 GPU: NVIDIA Tesla K20c, 13 SMs @ 0.7 GHz (13 x 192 = 2496 cores), 5 GB GDDR5

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 28 / 35

slide-36
SLIDE 36

Sliding Window Results

Method Time (sec) Speed-up CPU 392.16 1 GPU 48.01 8.17 m = n = 100, o = 100, b = 5 f = 10, k = 10 GPU k = 32, o = 305, m = n = 64

F

20 40 60 80 100 120 140 160

Time(sec)

40 60 80 100 120 140 160 180 200 220 b=3 b=4 b=5 b=6

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 29 / 35

slide-37
SLIDE 37

Sliding Window Results

O = 32, W = 7x7

M = N : Image Size 50 100 150 200 250 300 350 400 t = time (seconds) 50 100 150 200 250 300 350 400 F = 2 F = 4 F = 8

O = 32, F = 8

M = N : Image Size 50 100 150 200 t = time (seconds) 10 20 30 40 50 60 w = 9 × 9 w = 11 × 11 w = 13 × 13

M = N = 96, F = 8

O : Number of objects 10 20 30 40 50 60 70 t = time (seconds) 8 10 12 14 16 18 20 22 24 w = 9 × 9 w = 11 × 11 w = 13 × 13

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 29 / 35

slide-38
SLIDE 38

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 30 / 35

slide-39
SLIDE 39

HSI classification

Similarity-score matrix j 20 40 60 80 100 i 10 20 30 40 50 60 70 80 90 100 110 j (source nodes) 20 40 60 80 100 i (neighbor nodes) 20 40 60 80 100 kNN graph adjacency pattern (k = 5) k 20 40 60 80 100 log 10(σk/σmax )

  • 1.2
  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

normalized singular values

  • f directed graph Laplacian

(σ1/σmax = 9.1e-17)

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 31 / 35

slide-40
SLIDE 40

1 Introduction Windowed all-kNN among pixels in image objects 2 Fast calculation of pairwise distances Single object Multiple objects Distance matrix compression 3 Rapid k-nearest neighbors selection 4 GPU experiments 5 kNN classification 6 Recap – discussion

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 32 / 35

slide-41
SLIDE 41

Recap – discussion

In contrast to window-less counterpart

  • Explores spatial proximity

– Linear scaling in complexity along data domain size – Respects data coherence within local window

  • Enables kNN graph generation of large datasets by reducing

– Time consumption – Memory usage

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 33 / 35

slide-42
SLIDE 42

Acknowledgements

  • ARO Equipment Grant #W911NF-13-l-0344
  • NVIDIA Academic Research Equipment Support

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 34 / 35

slide-43
SLIDE 43

Thank you!

Floros, Iliopoulos, Pitsianis, Sun (AUTh|Duke) Windowed All-kNN Search GTC16 April 06, 2016 35 / 35

slide-44
SLIDE 44

References I

  • M. Aharon, M. Elad, and A. Bruckstein. k-svd: An algorithm for designing overcomplete dictionaries for sparse representation. IEEE Transactions on Signal

Processing, 54(11):4311Ű4322, nov 2006.

  • L. J. Denes, P. Metes, and Y. Liu. Hyperspectral Face Database. Robotics, pages 1Ű18, 2002.
  • M. Frigo, V. Strumpen, and B. Road. Cache Oblivious Stencil Computations. In Proceedings of the 19th annual international conference on Supercomputing,

volume 1, pages 361Ű366, 2005. URL http://dl.acm.org/citation.cfm?id=1088197.

  • V. Garcia, E. Debreuve, and M. Barlaud. Fast k nearest neighbor search using GPU. In Computer Vision and Pattern Recognition Workshops, 2008. CVPRW ’08.

IEEE Computer Society Conference on, pages 1Ű6, jun 2008.

  • L. Huang, Z. Liu, Z. Yan, P. Liu, and Q. Cai. An Implementation of High Performance Parallel KNN Algorithm Based on GPU. In 2012 Third International

Conference on Networking and Distributed Computing, pages 30Ű30. IEEE, oct 2012.

  • P. Leite, J. Teixeira, T. de Farias, V. Teichrieb, and J. Kelner. Massively Parallel Nearest Neighbor Queries for Dynamic Point Clouds on the GPU. In Computer

Architecture and High Performance Computing, 2009. SBAC-PAD ’09. 21st International Symposium on, pages 19Ű25, oct 2009.

  • S. Liang, C. Wang, Y. Liu, and L. Jian. CUKNN: A parallel implementation of K-nearest neighbor on CUDA-enabled GPU. In Information, Computing and

Telecommunication, 2009. YC-ICT ’09. IEEE Youth Conference on, pages 415Ű418, 2009.

  • G. Lu and B. Fei. Medical hyperspectral imaging: a review. Journal of biomedical optics, 19(1):10901, 2014.
  • W. P. Segars, M. Mahesh, T. J. Beck, E. C. Frey, and B. M. W. Tsui. Realistic CT simulation using the 4D XCAT phantom. Medical Physics, 35(8):3800, 2008.

ISSN 00942405. doi: 10.1118/1.2955743. URL http://scitation.aip.org/content/aapm/journal/medphys/35/8/10.1118/1.2955743.

  • N. Sismanis, N. Pitsianis, and X. Sun. Parallel search of k-nearest neighbors with synchronous operations. In 2012 IEEE Conference on High Performance Extreme

Computing (HPEC), pages 1Ű6. IEEE, sep 2012.

  • L. Wei, Z. Zhiming, Y. Zhimin, F. Wei, and W. Xiaoping. Parallel Continuous k-Nearest Neighbor Computing in Location Based Spatial Networks on GPUs. In

2013 International Conference on Computational and Information Sciences, pages 271Ű274. IEEE, jun 2013.