Presentation is loading. Please wait.

Presentation is loading. Please wait.

Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 King Mongkut's Institute of Technology Ladkrabang.

Similar presentations


Presentation on theme: "Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 King Mongkut's Institute of Technology Ladkrabang."— Presentation transcript:

1 Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 King Mongkut's Institute of Technology Ladkrabang

2 High Resolution graphics not Smoother? 1. Buy better Graphics Card 2. Install newest Driver > 3. Better GPU & CPU Management!! Why

3 This Paper? GPU? POSIX? - IEEE Thread Standard - Thread API for Many OS - Pthread = GPU + Thread Technique Apply GPU & POSIX Thread What

4 Overview 1. Solve? 2. Technique 3. Process 4. Real App

5 1.Solve?

6 Problem: Remote sensing is Massive! High Resolution = Slow Processing = Can’t Real Time Goal: Processing image faster

7 2.Technique

8 2.Technique (1/4) 1. CUDA 2. Block and Tile 3. Dual-parallel Processing

9 2.Technique (2/4) 1. CUDA (Compute Unified Device Architecture) Is: Parallel Architecture for using GPU Use by: NVIDIA GPUs since 2007 e.g. GeForce GT 420*

10 2.Technique (3/4) 2.Block and Tile What is Block and Tile ●Image data share to block of I/O ●If block larger than gpu, have problem

11 2.Technique (4/4) 3.Dual-parallel Processing POSIX threads are applied to perform the I/O step and the GPU processing step simultaneously.

12 3.Process

13 2.Process(1/2)

14 3.Process (2/2)

15 4.Real App EXPERIMENT Database PostgreSQL

16 4.Real App CPU 1 ( AMD Athon 3000+, 1.81GHz )CPU 2 ( Intel Core i3 530, 2.93 GHz )GPU ( Nvidia Geforce GT240, 512M ) 1 23 EXPERIMENT

17 4.Real App 123 4 56 Image1 Image2 Image3 Image4 Origital Image ProcessesProcessed Image Input Process Output

18 4.Real App Original imageProcessed image

19 4.Real App IMAGE 1 IMAGE 2 IMAGE 4 IMAGE 3

20 4.Real App Image1 23821 * 21758 Image2 12000 * 10961 Image3 6000 * 5480 Image4 3000 * 2740

21 -PostgreSQL is a powerful -Object-Relational database system -More Than MySQL - CUDA technology directly to process the image blocks stored in database rapidly with SQL statements 4.Real App Database PostgreSQL

22 4.Real App 1.Use 2.Download 3.Install Database PostgreSQL

23 4.Real App 1.Use PostgreSQL PostPICPostGIS SELECT * FROM images WHERE where date(the_img) > '2009-01- 01'::date and size(the_img) > 1600; - Support geographic objects to PostgreSQL - Simple Features Specification for SQL - Types and Functions

24 -Download : http://www.postgresql.org/download 4.Real App 2. Download

25 4.Real App 3.1 Install PostgreSQL 1 2 3 4 5 6

26 4.Real App 3.1 Install PostgreSQL 7 8 9 10 11 12

27 4.Real App 3.2 Install PostGIS 16 17 18 13 14 15

28 4.Real App 3.2 Install PostGIS 1920

29 4.Real App PostgreSQL 9.3 PostGIS 2.1 3.3 Install Complete

30 Conclusion!

31 Conclusion 1.Solve? = Processing faster 3.Process = Flowchart 2.Technique = Dual-Process 4.Real App = Speed up

32 PostPICPostGIS PostgreSQL Conclusion CPUGPU Block and Tile

33 Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 THANK YOU !!

34 Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing Extended!! 1. Technique (Extended) 2. Process (Extended)

35 1. Technique X

36 1.CUDA X 1.Block and Tile X 1.Dual-parallel Processing X

37 1. Technique X 1. CUDA (Extended)

38 1. Technique X 1.1 Architecture Confix GPU API 1. CUDA (Extended)

39 1. Technique X 1. Language integration-Level = e.g. C, C++, … 2. Device-Level = e.g. Assembly 1.1 Architecture 1. CUDA (Extended) -> API

40 1. Technique X 1.2 Parallel CPU GPU 1. CUDA (Extended)

41 1. Technique X -A resource management program in OS -> CPU -Allow copy back help other compute 1.2 Parallel 1. CUDA (Extended)

42 1. Technique X Partition of image Data in GPU Partition for a kernel Processing data in a Block -> GPU 1.2 Parallel 1. CUDA (Extended)

43 1. Technique X 2. Block and Tile (Extended)

44 1. Technique X 2. Block and Tile (Extended) The block is the I/O unit between sensing image data and the system memory

45 1. Technique X Block and Tile(Cont) We tested the I/O performance with different block sizes Results show that the I/O performance of sensing image data declines The tile is used to transfer data between the system memory and GPU memory Block, the I/O unit between image and memory Tile, the I/O unit between memory and GPU memory

46 1. Technique X Block and Tile(Cont) The block in system memory is partitioned into multiple tiles in this approach The tile is used to transfer data between the system memory and GPU memory

47 1. Technique X 2. Dual-parallel Processing (Extended)

48 3.Dual-parallel Processing (Extended) 1. Technique X Using buffer pool technology. I/O step and the GPU processing step are independent from each other. Simple and easy to implement if buffer size is equal to block size.

49 1.Technique X Used for the I/O task between the image data and the system memory Responsible for delivering the buffers from the buffer pool to the GPU memory and processing 3.Dual-parallel Processing (Extended)

50 1.Technique X 3.Dual-parallel Processing (Extended)

51 1.Technique X From the micro perspective, image data are processed by hundreds of execution units simultaneously in GPU From the macro perspective, the I/O operation and the processing operation are performed simultaneously by POSIX threads. 3.Dual-parallel Processing (Extended)

52 1.Technique X 3.Dual-parallel Processing (Extended)

53 2.Process X

54 2.Process(1/3) Begins with function main after that Initialization of CUDA environment Group of buffers are set up Two POSIX threads are created One is used to input and output the remote sensing image data Two is used to responsible for processing the buffers read by the first thread For example Ready_to_read The I/O thread should read a block from image data to current buffer Ready_to_process Buffer is ready to be process by GPU Ready_to_process The I/O thread should write a block to image data

55 2.Process(2/3) Two global variables are declared to record the execution state of each thread For example Is_IO_Over is true, it means all the work of I/O thread is finished Is_Process_Over is true, it means all the work of responsible for processing the buffers is finished “pthread_join” would be called to terminate that thread Two threads are finished then all the remote sensing image data are completely processed and the program will be end by calling “return”


Download ppt "Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 King Mongkut's Institute of Technology Ladkrabang."

Similar presentations


Ads by Google