40
บทที 1 บทนำ ควำมเป็นมำและควำมสำคัญของปัญหำ ในการแก้ปัญหาอย่างการสลับกันในพีชคณิตด้วยขั ้นตอนวิธีหาคาตอบที่เหมาะสมที่สุด ส่วนใหญ่นั้น ถึงแม ้ว่าจะใช้การค้นหาที่น้อยกว่า n! แต่ก็ยังต้องใช้การค้นหาเข้าไปยังต้นไม้ หรือ กลุ่มของคาตอบจานวนหนึ่ง ไม่เว้นแม้แต่ขั ้นตอนวิธีเชิงพันธุกรรมที่สืบค้นคาตอบจากประชากรใน แต่ละรุ่น รวมถึงงานจากขั้นตอนอย่างการกลายพันธ์ และการผสม สาหรับสร้างประชากรในรุ่น ต่อไป ทาให้เมื่อนักวิจัยต้องการศึกษาเพื่อดูผลกระทบของพารามิเตอร์และหาพารามิเตอร์ทีเหมาะสมสาหรับปัญหานั้นๆ พวกเขาต ้องทาการทดลองด้วยพารามิเตอร์ที่ต่างกันหลายชุดเพื่อจะ ได้พารามิเตอร์ที่เหมาะสมสาหรับปัญหานั้น มีการงานวิจัยของ Juan Li [1] ที่ศึกษาผลของ พารามิเตอร์ของชั้นตอนวิธีเชิงพันธุกรรมในปัญหา การวางแผนโครงข่ายการให ้บริการสื่อสารส่วน บุคคลเพื่อหาค่าพารามิเตอร์ที่เหมาะสมสาหรับปัญหานี ้ พบว่าคุณภาพของคาตอบดีขึ้นเมื่อเพิ่ม ขนาดของประชากร งานวิจัยของ Sofiene และ Jaleleddine [2] ศึกษาผลของพารามิเตอร์ของ ขั้นตอนวิธีเชิงพันธุกรรม สาหรับปัญหาการลู่เข้าของสนามแม่เหล็กไฟฟ้ า พบว่าการเพิ่มขนาดของ ประชากรทาให้เข้าใกล้คาตอบที่ดีกว่า แต่ประชากรที่ใหญ่ทาให้เวลาที่ใช้ในการลู่เข้าของ สนามแม่เหล็กไฟฟ้ า มากขึ้นตามมา งานวิจัยของ Mohd Zakimi [3] ศึกษาผลของพารามิเตอร์ ของขั้นตอนวิธีเชิงพันธุกรรม ในปัญหา Multi objective Optimization (MMO) ซึ่งพบว่า พารามิเตอร์ที่เหมาะสมของปัญหานี้อย่างขนาดประชากรอาจไม่ใช่ขนาดที่มากขึ้นเรื่อยๆ แต่เป็ น ขนาดที่เหมาะสมค่าหนึ่ง แน่นอนว่าหากขั้นตอนวิธีที่ต้องการศึกษาความเกี่ยวข้องของพารามิเตอร์ เหล่านี้มีความซับซ ้อน การทดลองแต่ละครั้งต ้องใช้ระยะเวลานานสาหรับการคานวณแบบปกติ ตัวประมวลผลกราฟิก (GPU) เป็นหนึ่งในตัวเลือกที่สามารถนามาเพิ่มความเร็วได้ เนื่องจาก GPU มีราคาที่ถูกและพลังในการคานวณที่มากกว่าเมื่อเปรียบเทียบกับ CPU[4] ซึ่งจะกล่าวถึงตัวอย่าง การทดลองที่นา GPU ไปเพิ่มความเร็วให้กับขั ้นตอนวิธีเชิงพันธุกรรมในหัวถัดไป ขั้นตอนวิธีอุบัติการณ์ร่วมกัน (COIN) เป็นหนึ่งในขั้นตอนวิธีหาคาตอบทีเหมาะสมที่สุด ที่แสดงให้เห็นความสามารถเมื่อเปรียบเทียบกับขั้นตอนวิธีที่นิยมหลายตัว [5] พารามิเตอร์ของ COIN เองก็เป็นที่น่าสนใจว่าการเปลี่ยนแปลงค่าพารามิเตอร์บางตัว อย่างเช่น จานวนการเลือกประชากรของกลุ่มที่ดีและไม่ดีนั้นจาเป็นต ้องเท่ากันหรือไม่ จานวนการเลือก ประชากรที่เหมาะค่าหนึ่งอาจทาให้สามารถหาคาตอบได้ด้วยจานวนรุ่นที่น้อยลงหรือไม่ แน่นอนว่า

บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

1

บทท 1

บทน ำ

ควำมเปนมำและควำมส ำคญของปญหำ ในการแกปญหาอยางการสลบกนในพชคณตดวยขนตอนวธหาค าตอบทเหมาะสมทสด

สวนใหญนน ถงแมวาจะใชการคนหาทนอยกวา n! แตกยงตองใชการคนหาเขาไปยงตนไม หรอกลมของค าตอบจ านวนหนง ไมเวนแมแตขนตอนวธเชงพนธกรรมทสบคนค าตอบจากประชากรในแตละรน รวมถงงานจากขนตอนอยางการกลายพนธ และการผสม ส าหรบสรางประชากรในรนตอไป ท าใหเมอนกวจยตองการศกษาเพอดผลกระทบของพารามเตอรและหาพารามเตอรทเหมาะสมส าหรบปญหานนๆ พวกเขาตองท าการทดลองดวยพารามเตอรทตางกนหลายชดเพอจะไดพารามเตอรทเหมาะสมส าหรบปญหานน มการงานวจยของ Juan Li [1] ทศกษาผลของพารามเตอรของชนตอนวธเชงพนธกรรมในปญหา การวางแผนโครงขายการใหบรการสอสารสวนบคคลเพอหาคาพารามเตอรทเหมาะสมส าหรบปญหาน พบวาคณภาพของค าตอบดขนเมอเพมขนาดของประชากร งานวจยของ Sofiene และ Jaleleddine [2] ศกษาผลของพารามเตอรของขนตอนวธเชงพนธกรรม ส าหรบปญหาการลเขาของสนามแมเหลกไฟฟา พบวาการเพมขนาดของประชากรท าใหเขาใกลค าตอบทดกวา แตประชากรทใหญท าใหเวลาทใชในการลเขาของ สนามแมเหลกไฟฟา มากขนตามมา งานวจยของ Mohd Zakimi [3] ศกษาผลของพารามเตอรของขนตอนวธเชงพนธกรรม ในปญหา Multi objective Optimization (MMO) ซงพบวาพารามเตอรทเหมาะสมของปญหานอยางขนาดประชากรอาจไมใชขนาดทมากขนเรอยๆ แตเปนขนาดทเหมาะสมคาหนง แนนอนวาหากขนตอนวธทตองการศกษาความเกยวของของพารามเตอรเหลานมความซบซอน การทดลองแตละครงตองใชระยะเวลานานส าหรบการค านวณแบบปกต ตวประมวลผลกราฟก (GPU) เปนหนงในตวเลอกทสามารถน ามาเพมความเรวได เนองจาก GPU มราคาทถกและพลงในการค านวณทมากกวาเมอเปรยบเทยบกบ CPU[4] ซงจะกลาวถงตวอยางการทดลองทน า GPU ไปเพมความเรวใหกบขนตอนวธเชงพนธกรรมในหวถดไป

ขนตอนวธอบตการณรวมกน (COIN) เปนหนงในขนตอนวธหาค าตอบทเหมาะสมทสด ทแสดงใหเหนความสามารถเมอเปรยบเทยบกบขนตอนวธทนยมหลายตว [5] พารามเตอรของ COIN เองกเปนทนาสนใจวาการเปลยนแปลงคาพารามเตอรบางตว อยางเชนจ านวนการเลอกประชากรของกลมทดและไมดนนจ าเปนตองเทากนหรอไม จ านวนการเลอกประชากรทเหมาะคาหนงอาจท าใหสามารถหาค าตอบไดดวยจ านวนรนทนอยลงหรอไม แนนอนวา

Page 2: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

2

การทดลองในแตละรอบนนหากวาพารามเตอรบางตวซงมผลท าใหปรมาณขอมลในการค านวณมมากขน อยางจ านวนประชากร กจะตองใชเวลามากขนในการค านวณในแตละรอบ ดงนนเมอน า ขนตอนวธอบตการณรวมกน มาท างานบน GPU แลว ดวยการท างานแบบขนานเราสามารถใชเวลาในการท าการทดลองในแตละรอบนอยลง สงผลใหเวลาทตองใชในการศกษานอยลงเชนกน กระบวนการวเคราะห ขนตอนวธอบตการณรวมกน เพอออกแบบการท างานแบบขนาน ,การจดแบงลกษณะของโครงสราง เทรด และ บลอก เพอใหท างานบน GPU จะถกกลาวถงตอไป

วตถประสงคของกำรวจย

น าขนตอนวธอบตการณรวมกน ไปท างานแบบขนานบนหนวยประมวลผลกราฟก เพอท าให ขนตอนวธอบตการณรวมกนท างานเรวกวาการประมวลผลบนหนวยประมวลผลกลาง แบบปกต

ขอบเขตของกำรวจย 1. เปรยบเทยบการท างานของ ขนตอนวธอบตการณรวมกน ดงเดมท

ท างานบนหนวยประมวลผลกลาง intel core i3 2.1 GHz กบ ขนตอนวธอบตการณรวมกน ทถกเขยนดวย CUDA C เพอการประมวลผลแบบขนานบน GPU NVIDIA Geforce GT 540M ในหนวยของเวลาไมโครเซคน โดยท าการทดลอง 10 ครงและน าคาเฉลยมาเปรยบเทยบ

2. ใชปญหาการเดนทางของนกขาย(TSP) เพอค านวณคาความเหมาะสม ของประชากรแตละตวในแตละรน โดยใชจ านวนประชากร 500 และ1000 ตวตอรน

ประโยชนทคำดวำจะไดรบ

สามารถน าขนตอนวธอบตการณรวมกนในรปแบบขนานนไปท างานวจยอนทตองท าการประมวลผลซ าๆดวยชดขอมลทมปรมาณมากโดยใชเวลานอยกวาการท างานปกตบนหนวยประมวลผลกลาง เชน การทดลองหาพารามเตอรทเหมาะสมส าหรบชดขอมลหนง

วธด ำเนนกำรวจย

1. ศกษาทฤษฎและงานวจยทเกยวของ

Page 3: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

3

2. วเคราะหลกษณะการท างานของขนตอนวธอบตการณรวมกนเพอหาลกษณะการท างานแบบขนาน

3. ออกแบบโปรแกรมเพอใหขนตอนวธอบตการณรวมกนท างานแบบขนานบนอปกรณประมวลผลกราฟก

4. เขยนโปรแกรมทงแบบประมวลผลล าดบบนหนวยประมวลผลกลางและแบบขนานบนหนวยประมวลผลกราฟก

5. ทดลองประมวลผลทงสองแบบและจบเวลา

6. วเคราะหผลการทดลอง

7. สรปผลการวจยและเรยบเรยงวทยานพนธ

โครงสรำงของวทยำนพนธ

วทยานพนธฉบบนประกอบไปดวย 5 บทหลก คอ บทน า เอกสารและทฤษฎทเกยวของ วธด าเนนการวจย การทดลองและผลการทดลอง และสรปงานวจยกบแนวทางพฒนาตอ

ในบทแรกจะกลาวถง ความเปนมา ปญหา วตถประสงค ขอบเขตของงานวจย ประโยชนทจะไดรบ ขนตอนการท าวจย โครงสรางของวทยานพนธ และผลงานทตพมพ จากวทยานพนธ บททสอง จะกลาวถง ทฤษฎของวธอบตการณรวมกนและ ประวตและการท างานเบองตนของ NVIDIA CUDA C บททสามกลาวถงวธด าเนนงานวจย ซงจะอธบายขนตอนและหวขอทตองศกษารวมถงการออกแบบโปรแกรมเพอประยกตขนตอนวธอบตการณรวมกนบนหนวยประมวลผลกราฟก บททส อธบายวธการทดลองและแสดงผลการทดลอง ตลอดจนวเคราะหผลการทดลอง และบทสดทายจะสรปงานวจยพรอมแนะแนวทางเพอพฒนาตอยอดงานวจยนใหดขนตอไป

ผลงำนทตพมพจำกวทยำนพนธ 2012 Ninth International Joint Conference on Computer Science and Software

Engineering (JCSSE) pp 126-130

Page 4: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

4

บทท 2

เอกสำรและงำนวจยทเกยวของ

2.1 ขนตอนวธอบตกำรณรวมกน เปนหนงในขนตอนวธเชงพนธกรรมทมแนวคดส าคญทแตกตางจาก ขนตอนวธ

เชงพนธกรรม แบบดงเดม คอ การน าค าตอบทไมดมารวมพจารณาและเรยนรเพอหลกเลยงโอกาสของการไดมาซงค าตอบทไมดนนในรนถดไป จากการทดลอง [5] ทแสดงใหเหนวาการเรยนรจากค าตอบทดและไมดพรอมกน ดกวาการเรยนรจากค าตอบทด หรอไมดเพยงอยางเดยว และยงเปรยบเทยบกบขนตอนวธทนยมหลายตว [5]

วธอบตการณรวมกน แบงการท างานออกเปน 5 ขนตอนหลก คอ ก าหนดคาเรมตน, สรางกลมของประชากร , ประเมนคาความเหมาะสมของประชากรแตละตว , เลอกประชากรจ านวนหนงออกมาเปนกลมทดและไมด , ปรบปรงคาความนาจะเปนรวม เราสามารถพจารณาการท างานภายในของ 5 ขนตอนหลกไดดงน

2.1.1 ก ำหนดคำเรมตน ตวก าเนด คอ ตารางขนาดเทากบ n x n ซง n คอ ขนาดของค าตอบ ในตารางน บรรจตนไมทขนตอกน (dependency tree) ซงแตละแถวก าหนดใหเปน ตนไมทขนตอกน หนงตน และแตละคอลมนคอความนาจะเปนรวม )X|h(X ji ซงเปรยบไดกบกงของตนไม , iX แทนแถวของตารางขณะท jX แสดงคอลมน และก าหนดวาเมอเกดเหตการณ iX และตามดวย jX ต าแหนงท ijX คอความนาจะเปนรวม )X|h(X ji การก าหนดคาเรมตนใหกบตารางจะแบงความนาจะเปนรวม ไปยงทกคอลมน

เทาๆกน คอ )(n 1

1

ยกเวนต าแหนงท i เทากบ j จะไดตารางทเตมเตมดวยคาความนาจะเปน

รวมทเทากนทกต าแหนง ส าหรบต าแหนง ijX ซง i เทากบ j จะได ความนาจะเปนรวมเปน 0

Page 5: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

5

0 0.25 0.25 0.25

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.25

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0.25

A

B

C

D

E

A B C D E

0 0.40 0.20 0.20

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.20

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0.25

A

B

C

D

E

A B C D E

(a) (b)

0 0.10 0.30 0.30

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.30

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0.25

A

B

C

D

E

A B C D E

(c) รปท 2-1 ตวก าเนด ขนาด 5x5 หลงจากผานการก าหนดคาเรมตน ทกชองจะถกเตมดวยความ

นาจะเปนรวมเทากบ )(n 1

1

ยกเวนชองท i เทากบ j ความนาจะเปนรวมเทากบ 0

2.1.2 กำรสรำงกลมของประชำกร ประชากรแตละตวคอผลจากการเดนทางใน dependency tree ในแตละแถวของตาราง ตวก าเนด โดย เรมจากต าแหนง iX ใดๆ ตามความนาจะเปนทเหมาะสม เชน หากวาไมมขอสงเกตทชดเจนวาต าแหนงใดนาจะถกเลอกเปนพเศษแลว อาจใหความนาจะเปนของการเลอก

ต าแหนงเรมตนเทากนท n

1 ต าแหนงนจะกลายเปนรากของตนไม เมอไดรากของตนไมมาแลว

สมาชกของค าตอบทเหลอไดมาจากการคนเขาไปยงตนไมดวยวธลงลกกอน ส าหรบการเลอกแตละ jX จะเลอกจากความนาจะเปนรวม )X|h(X ji ของแตละกง 2.1.3 กำรประเมนคำควำมเหมำะสมของประชำกร สงทไดมาจากขนตอนการสรางกลมประชากรคอค าตอบทประกอบไปดวยกลมของค าตอบทยงไมสามารถบอกไดถงความดหรอไมดของประชากรแตละตว ในขนตอนนจะท าการประเมนคาความเหมาะสมจากฟงกชนความเหมาะสม ซงแตกตางกนไปในแตละปญหา เชน ปญหา TSP คาความเหมาะสม คอ คาระยะทางรวมของทกเมองบนเสนทางทสรางขนมา 2.1.4 เลอกประชำกรเปนกลมทดและไมด เมอไดคาความเหมาะสมของประชากรแตละตวแลว เราสามารถแบงเปนกลมทดและไมดไดจากคาความเหมาะสม วธในการแบงทม 2 วธ [5] วธแรกคอการแบงแบบเทากน (uniform) และแบบปรบตว ในงานวจยนเราใชวธแบงแบบเทากนคอการเลอกจากประชากรทมคาความเหมาะสมมากทสดลงไปหานอยเปนจ านวน c เปอรเซนต เปนกลมทด และเลอกจากประชากรทมคาความเหมาะสมนอยทสดไปหามาก c เปอรเซนตเทากน เพอเปนตวแทนของกลมทไมด

Page 6: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

6

2.1.5 กำรปรบปรงคำควำมนำจะเปนรวม กลมของค าตอบทดและไมดทไดจากขนตอนการเลอกประชากรจะกลายเปนตวแทนของกลมค าตอบทงหมด เมอพจารณาคล าดบ ji X,X ของแตละตวแทน เขยนไดวา ji,X

มความนาจะเปนรวม )X|h(X ji เมอนบคล าดบนในกลมประชากรทด มจ านวน ji,r สมการการใหรางวลคอ

)1(,11 1

2,,

1

, jmr)(n

kr)(n

k+X=X

n

=m

mi,ji

t

ji

t

ji

mi,r คอชองอนๆทไมใช j

นพจน

n

=m

mi,r)(n

k

121

คอการลดคาชองอนๆลง

เชนเดยวกน สมการการลงโทษ เมอ jip , คอจ านวน ji X,X ทพบในกลมทไมด คอ

)2(,11 1

2,,

1

, jmp)(n

kp)(n

kX=X

n

=m

mi,ji

t

ji

t

ji

เมอรวมสมการ (1) และ (2) เขาไวดวยกน

)3(,11 1

2,,,

1

, jmpr)(n

kpr

)(n

kX=X

n

=m

mi,mi,jiji

t

ji

t

ji

มกฎบางขอเพมเตมในการ ส าหรบการปรบปรงคาความนาจะเปนรวมน เนอง

ดวยการปรบปรงคาความนาจะเปนรวมนนคอการเพม หรอ ลด ดวยอตราสวนคงท แตความนาจะเปนตองไมเปนคาตดลบ มากกวานนถาความนาจะเปนรวมไดถกเพมคาไปถงจดๆหนงแลวตองไมเพมคาขนอก เพอใหเหลอความนาจะเปนในการเลอกสมาชกตวอนดวย เพอใหสามารถสรางค าตอบทหลากหลาย 2.2 หนวยประมวลผลกรำฟกและ CUDA C

Page 7: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

7

นบตงแตชดพฒนา CUDA (Compute Unified Device Architecture ) เปดตวเมอ เดอนพฤศจกายน ป 2006 ดวยสถาปตยกรรมทรวม CPU และ อปกรณประมวลผล GPU มารวมกนประมวลผล ใชฟงกชนทสามารถเรยกไดจาก CPU และท างานทอปกรณประมวลผล GPU จะถกเรยกพรอมกนเปนจ านวนตามทก าหนดดวยตวเลขของ บลอก และ เทรด ซงจ านวนทถกประมวลผลจรงในชวงเวลาหนงจะเปนไปตามจ านวนแกนของ GPU ทม

เทรด คอ หนวยยอยทสด ซงกลมของ เทรด จะอยภายได บลอก หนงและท างานภายในแกนประมวลผลเดยวกน สวน บลอก กลมของ บลอก เรยกวา กรด แตละบลอกสามารถถกประมวลผลแยกกนไปตามแกนทวางและพรอมประมวลผลได ดงนนงานทถกประมวลผลในแตละ บลอก นนควรจะเปนงานทไมเกยวเนองกน ภาพท 2 แสดงใหเหนถงภาพของการแบง บลอก และ เทรด โดยในภาพ บลอก ถกแบงออกเปน 2 มต และในแตละบลอกนนบรรจ เทรด ทสามารถอางถงดวยตวเลข 2 มตเชนกน

รปท 2-2 การแบง บลอกและเทรด โดยกลมของบลอกทอางถงโดยตวเลข 2 มตอยภายใตกรด

เดยวกน และในแตละ บลอก บรรจ เทรด ทอางถงดวยเลข 2 มต

สถาปตยกรรม SIMT (Single-Instruction, Multiple-Thread) ชดพฒนา CUDA นนไดถกสรางขนจากชดของสตรมมงมลตโพรเซสเซอรท

ท างานพรอมกน เมอชดค าสงจาก CPU เรยกไปยง GPU จ าวนของเทรดตอบลอกทก าหนดโดยโปรแกรมเมอร เทรดจะถกแบงออกเปนกลมตามจ านวนวารป ( วารป คอ กลมของเทรดทท างานพรอมกนหนงชด จ านวนของเทรดทอยในวารปนแตกตางกนไปตามรนของตวประมวลผลกราฟก ตวอยางเชนใน รนของความสามารถการค านวณ 2.x หนงวารปจะม 48 เทรด และในรนทต ากวาจะม 32 เทรด) จากนนมลตโพรเซสเซอรจะสราง จดการวางเสนทาง และสงใหกลมของเทรด

Page 8: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

8

ท างาน ในเทรดแตละตวจะมตวนบโปรแกรมและรจสเตอรเกบสถานะของตวเองดงนนเทรดแตละตวจะสามารถท างานแตกตางจากเทรดอนทอยในวารปเดยวกนได

การท างานของแตละเทรดในวารปนนมความเกยวของทางดานประสทธภาพการท างาน เนองจากการท างานของเทรดทกตวในวารปจะเรมตนจากต าแหนงโปรแกรมเดยวกนและท างานตามชดค าสงทเหมอนกนไปเรอยๆ แตถามเทรดบางตวทตองท างานแตกตางจากเทรดตวอนเนองจากเงอนไขบางอยางเฉพาะตว มลตโพรเซสเซอรจะใหเทรดตวอนหยดรอ และปลอยใหเทรดตวทท างานแตกตางนนไดท างานของตวเองเสรจสน และเมอชดค าสงของเทรดตวนนเปนชดเดยวกบเทรดตวอน มลตโพรเซสเซอรจะสงใหเทรดทกตวท างานพรอมกนอกครง นคอความหมายของ Single-Instruction , Multiple-Thread ทหนงค าสงจะสงใหเทรดท างานพรอมกนหลายตว ดงทอธบาย หากวาการท างานของโปรแกรมมเงอนไขทท าใหบางเทรดในวารปตองท างานแตกตางจากเทรดตวอน ประสทธภาพการท างานของจะดอยลงเนองจากตองมการหยดรอกน จากสถาปตยกรรม SIMT นน โปรแกรมเมอรสามารถเขยนโปรแกรมในระดบของเทรดเพอใหเทรดท างานแบบขนานใหไดประสทธภาพการท างานสงสดได แตส าหรบการน าตวประมวลผลไปประยกตใชกบปญหาทเนนทางดานความถกตองมากกวา การท างานภายในของ SIMT นนอาจไมตองน ามาพจารณามาก

จ านวนของรจสเตอรและความจ ารวมเปนทรพยากรทจ ากด ดงนนจ านวนของบลอกและวารปทถกประมวลผลโดยมลตโพรเซสเซอร ณ เวลาหนงเองกถกจ ากดโดยจ านวนของรจสเตอรและความจ ารวมทมอยบนมลตโพรเซสเซอร ถาทรพยากรเหลานมไมเพยงพอทจะส าหรบเทรดทงหมดทอยในหนงบลอก การท างานนนจะลมเหลว สมการ (4) ,(5) ,(6) แสดงการค านวณจ านวนวารป จ านวนรจสเตอร และจ านวนความจ ารวมทใชในหนงบลอก

(

) (4)

คอ จ านวนเทรดตอบลอก

คอ ขนาดของวารป ซงในรนความสามารถการค านวณ 2.x เทากบ 48

( )คอ ท าให มคาใกลจ านวนเทาของ มากทสด ในสมการ

คอการท าให

มคาเปนจ านวนเทาของ 1

จากสมการท (4) จะไดจ านวนวารปในหนงบลอกมาซงจะใชน าไปหาจ านวนรจสเตอรและจ านวนความจ ารวมตอไปในสมการท (5) และ (6) ตามล าดบ

Page 9: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

9

( ) (5)

คอ จ านวนเทรดนอยสดทสามารถจองได เทากบ 64 ส าหรบรนของความสามารถการค านวณ

คอ จ านวนรจสเตอรทถกใชโดยเคอรเนล จากสมการท (5) ถาจ านวนรจสเตอรทตองใชในหนงบลอกมากกวาจ านวน

รจสเตอรทมอยในมลตโพรเซสเซอร จ านวนของวารปตอบลอกจะถกลดลงในตอนค านวณจรงเพอใหโปรแกรมสามารถท างานได

( ) (6)

คอ จ านวนของความจ ารวมทถกใชโดยเคอรเนลมหนวยเปนไบท

คอ จ านวนความจ ารวมทนอยทสดทสามารถจองได มขนาด 128 ไบทส าหรบรนของความสามารถการค านวณ 2.x

สงเกตไดวาหากจ านวนเทรดตอบลอกทโปรแกรมเมอรก าหนดใหในกบเคอรเนล

นนไมเปนจ านวนเทาของจ านวนวารปสงสดตามรนของความสามารถการค านวณของตวประมวลผลกราฟก เชน รนของความสามารถการค านวณ 2.x มจ านวนวารปสงสด 48 จะท าใหเหลอเศษและตองปดเปนจ านวนวารปตอบลอกขนอกหนงคา ตวอยางเชน จ านวนเทรดตอบลอกคอ 49 จากสมการ (4) เราจะไดจ านวนวารปตอบลอกเปน 2 ท าใหการจองรจสเตอรและความจ ารวมเพมขนอยางมาก ซงจะมผลใหความสามารถในการค านวณของมลตโพรเซสเซอรลดลง ชนดของความจ าในอปกรณประมวลผล ในอปกรณประมวลผลกราฟกนนมชนดของความจ าอยจ านวนหนง ผ เขยนโปรแกรมสามารถเลอกใชเพอเพมอตราสวน CGMA (Compute to global memory access) ซงเปนจ านวนตวเลขทศนยมทบอกถงประสทธภาพของการสงผานขอมลในความจ าทวไป ( global memory )

Page 10: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

10

รปท 2-3 ความจ าในอปกรณประมวลผลกราฟก GeForce 8800 GTX

จากรปท 2-3 ดานลางสดของรปจะเหนไดวาโฮสจะอานและเขยนขอมลไปทความจ าทวไป ( Global Memory)หรอ ความจ าคงท ( Constant Memory ) โดยการเรยกจาก API ฟงกชน ความจ าแบบคงทจะถกอานอยางเดยวซงจะถายโอนขอมลไดเรวกวาในบางกรณเนองจากมการแคชขอมลและสามารถถกเขาถงแบบขนานไดดกวาความจ าทวไป เหนอเทรดขนไปเปนรจสเตอรและความจ ารวม ตวแปรทอยในหนวยความจ านจะสามารถอานและเขยนแบบขนานไดอยางรวดเรว รจสเตอรจะถกจองไวใหกบเทรดเปนรายตว เทรดแตละตวสามารถเขาถงรจสเตอรของตวเองไดเทานน โดยปกตแลวในการประมวลผลเคอรเนลในแตละครง รจสเตอรจะถกใชเกบตวแปรทมการใชบอยครงและเขาถงไดจากเทรดทเปนเจาของเทานน ความจ ารวมจะถกจองไวส าหรบกลมของเทรด เทรดทกตวทอยในกลมเดยวกนจะสามารถเขาถงความจ ารวมของกลมตวเองไดเทานน ซงความจ ารวมนมประโยชนในการแลกเปลยนขอมลระหวางเทรดในกลมเดยวกนได การใชงานความจ าใหเกดประสทธภาพสงสด

ในภาพรวมของการใชงานความจ าใหเกดประสทธภาพสงสดนนคอการพยายามลดการสงผานขอมลในเสนทางทมความกวางของชองทางในการรบสงขอมลต า (low bandwidth) เชนการสงผานขอมลระหวางอปกรณประมวลผลกราฟกกบโฮส ซงมความกวางของชองทางในการรบสงขอมลต ากวาชองทางการสงผานขอมลระหวางความจ าทวไปภายในอปกรณประมวลผลกราฟกเอง และนอกจากการลดการสงผานขอมลระหวางอปกรณและโฮสแลว การใชความจ าอยางมประสทธภาพยงสามารถท าไดโดยการเพมการสงผานขอมลระหวางความจ าทวไปและความจ า

Page 11: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

11

ภายในหนวยประมวลผลกราฟก คอ ความจ ารวม ( Shared memory ) ซงเปนหนวยความจ าทอยตดกบหนวยประมวลผลและมความเรวในการสงผานขอมลทรวดเรว เราสามารถพจารณาการเขาถงของความจ าแตละชนดในเชงลกเพอใหเขาใจการท างานและสามารถออกแบบการอานเขยนหนวยความจ าแตละชนดเพอใหเกดประสทธภาพสงสดไดดงน ความจ าทวไป ( Global Memory ) ดงกลาวขางตนวาการสงขอผานขอมลทมประสทธภาพคอการสงผานทเปนกลมกอน (Coalesce) ถาขนาดของขอมลทสงผานแตละครงมขนาดไดใกลเคยงกบขนาดสงสดของอตราการสงผานขอมลสงสดได ยงจะท าใหเกดประสทธภาพมากขนเทานน ในการเขาถงความจ าสามารถสงขอมลดวยขนาด 32, 64 หรอ 128 ไบท โดยปกตแลวความจ าจะเรยงตอกนเปนจ านวนเทาของ 32 ,64, 128 ไบท เมอวารปหรอกลมของเทรดไดประมวลผลค าสงหนงค าสงเพอเขาถงความจ าทวไป การสงผานขอมลแบบกลมกอนจะเกดขนไดหรอไมขนอยกบจ านวนไบททเทรดแตละตวในวารปอานหรอเขยนขอมลวาเปนจ านวนเทาของ 32, 64 หรอ 128 ไบทหรอไม และอยกระจายกนในความจ าทวไปมากนอยแคไหนยงขอมลถกกระจายออกเปนสวนๆ มาก ท าใหจ านวนครงในการรองขอการอานเขยนขอมลจะถกแบงออกเปนหลายครงมากขน ท าใหการสงผานขอมลไมมประสทธภาพ เชน ถาขนาดของการสงผานเปน 32 ไบท และแตละเทรดถงขอมลครงละ 4 ไบท ดงนนปรมาณงานทท าไดคอ คอ 8 จ านวนครงในการสงผานขอมลและปรมาณงานทท าไดนนขนอยกบรนของความสามารถในการค านวณของอปกรณประมวลผลกราฟก ส าหรบรนของความสามารถในการค านวณ 1.0 และ 1.1 นน หากวาขอมลทแตละเทรดตองการนนอยกนอยางกระจดกระจายในหนวยความจ าจะท าใหการสงผานขอมลแบบกลมกอนนนเกดขนไดยาก แตส าหรบรนของความสามารถในการประมวลผล 2.x จะมการเกบขอมลทไดอานหรอเขยนมากอนหนานหรอ cache ท าใหลดผลกระทบจากการกระจายตวอยของขอมลในหนวยความจ าและเพมปรมาณงานทท าได เพอเพมปรมาณงานทท าไดของความจ าทวไป จะตองเพมการสงผานขอมลแบบกลมกอนใหมากทสดโดยวธการดงน

ปรบแตงการเขาถงขอมลใหมรปแบบทแนนอนใหมากทสด เชน ในกรณรนความสารมารถของการประมวลผล 1.2 ขนไป การเรยกอานขอมลของแตละเทรด ควร

Page 12: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

12

มขนาด 32 ไบทส าหรบการเขาถงขอมลทละ 8 บต ,64 ไบทส าหรบ 16 บต และ 128 ไบท ส าหรบ 32,64,128 บต

รปท 2-4 รปแบบการเขาถงต าแหนงขอมลแบบเรยงตวทอยภายใน 128 ไบทเดยวกนและไมอยภายใน 128 ไบทเดยวกน

จากรปท 2-4 บนจะเหนไดวาการสงผานขอมลจะเกดขนครงเดยวและมขนาด 128 ไบท ถาต าแหนงขอมลทรองขออยภายใน 128 ไบทเดยวกน และรปลางถาต าแหนงขอมลทรองไมอยภายใน 128 ไบท เดยวกน จะเกดการรองขอขอมลสองครงแทนทจะเปนครงเดยวเหมอนกรณรปบน

Page 13: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

13

รปท 2-5 ประสทธภาพของการคดลอกขอมลตามระยะหางจากต าแหนงเรมบน GTX 280 และ

GTX 8800 จากรปท 2-5 จะเหนไดวาทต าแหนงทระยะหางเปน 0 หรอ ท 16 ไบท การสงผานขอมลจะมประสทธภาพทสดเนองจากใชการสงผานครงเดยวท าใหอตราการสงผานขอมลสงถง 74 GBps ขณะทระยะหางอนซงไมเปนจ านวนเทาของ 16 ไบทอตราการสงผานขอมลลดลงเหลอเพยง 7 GBpsหรอ ประสทธภาพลดลงประมาณ 8 เทา จากกราฟทแสดงใหเราเหนไดวาถงแมจะมรปแบบในการเขาถงขอมลแลวแตถาต าแหนงการเขาถงขอมลไมเปนจ านวนเทาทเหมาะสมแลว อตราการสงผานขอมลจะลดลงอยางมาก ในรนความสารมารถการค านวณ 2.x นนปญหานจะนอยลงเนองจากมการแคชขอมลทเคยอานมากอนไว ท าใหตองมการสงผานขอมลเฉพาะทไมมอยในแคช

ใชชนดของตวแปรทสามารถก าหนดการเรยงตวในหนวยความจ าได ค าสงในการเขาถงขอมลทงอานและเขยนขอมลบนความจ าทวไปนน

สนบสนนการรองขอขอมลทขนาด 4, 8, 16 ไบท ถาขอมลของตวแปรตวหนงมต าแหนงบนหนวยความจ าไมเรยงกน ค าสงในการเขาถงจะถกแยกออกเปนหลายค าสงแทนทจะเปนค าสงเดยว

Page 14: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

14

ดงนนเพอท าใหแนใจวาตวแปรเรยงตวในหนวยความจ าเปนขนาด 2, 4, 8 หรอ 16 ไบทตามทตองการ การใชตวแปรทใหมากบชดพฒนา เชน __align__(8) ,__align__(16) ตวอยางการใช คอ

struct __align__(8) { float x; float y; };

เตมขอมลสวนทขาดส าหรบการเขาถงในบางกรณ ในกรณทความจ าทวไปถกใชเพอเกบขอมลแบบอะเรยสองมต และความ

กวางของอะเรยไมเปนจ านวนเทาของขนาดวารป การเขาถงในการอานเขยนขอมลจ าไมมประสทธภาพ แตยงมวธทเขาถงหนวยความจ าไดอยางมประสทธภาพโดยการใชฟงกชน cudaMallocPitch() และ cuMemAllocPitch() และ ฟงกชนส าเนาความจ าทเกยวของ ผ เขยนโปรแกรมกสามารถจองหนวยความจ าดวยวธนเพอเพมความสามารถในการอานเขยนหนวยความจ าใหมประสทธภาพได

รปท 2-6 การเขาถงหนวยความจ าทวไปดวยขนาด 4, 8 และ 16 ไบท

จากรปท 2-6 แสดงการเขาถงความจ าทวไปดวยขนาด 4, 8, และ 16 ไบท การเขาถง

ขอมลทอยในความจ าทวไปดวยขนาดไบททมากขนจะท าใหปรมาณขอมลทสงผานไดตอวนาท

Page 15: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

15

มากขนตามแกนนอน สวนแกนนอนแสดงจ านวนเทรดทรองขอขอมลซงจ านวนเทรดทมากขนจะท าใหปรมาณการสงผานขอมลมมากขนเชนกน

ความจ ารวม ( Shared Memory ) ความจ ารวมเปนหนวยความจ าซงอยบนชพ หรออยใกลกบตวประมวลผลดงนน

มนจงท างานไดเรวกวาความจ าภายใน ( local memory ) และความจ าทวไป ( global memory ) ความเรว

เพอใหสามารใชความเรวในการสงผานขอมลสงสดและการเขาถงแบบพรอมกน ความจ ารวมจะถกแบงออกเปนโมดลขนาดเทาๆกนเรยกวาแบงค ซงท าใหสามรถเขาถงไดพรอมๆกนได ดงนนถามการอานหรอเขยนต าแหนงความจ าท n ซงอยตางแบงคกนจะสามารถเขาถงไดพรอมๆกนท าใหอตราการสงผานขอมลสง

รปท 2-7 การเขาถงแบงคของความจ ารวม ดานซายแสดงการเขาถงแบงคปกต รป

ดานขวาแสดงการเขาถงแบงคทขดแยง อยางไรกตาม ถามการอานหรอเขยนขอมลบนแบงคเดยวกน จากหลายเทรด

พรอมๆกน เรยกเหตการณนวาการเขาถงแบงคทขดแยง ดงรปท 2-7 เมอมการเขาถงแบงคเดยวกน การรองขอจะถกแบงออกเปนหลายค าสง เพอรอควกนในการใชความจ า ดงนนปจจยทมผลในการลดอตราการสงผานขอมลในกรณความจ ารวมคอจ านวนของการรองขอทถกแบงออกมา ขอยกเวนอยางเดยว คอ ถาเทรดทรองขอไปยงทแบงคเดยวกนเปนเทรดทอยในวารปเดยวกน จะไมเกดการขดแยงแตจะมการกระจายขอมลต าแหนงทรองขอไปยงทกเทรดพรอมกนแทน

Page 16: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

16

เพอลดเหตการณของการเขาถงทขดแยงของแบงค ตองเขาใจลกษณะการเขาถงแบงคจากเทรดในวารป

แบงคของความจ ารวมจะถกแบงออกใหมขนาด 32 บตและแตละแบงคจะมอตราการสงผานขอมล 32 บตตอหนงรอบนาฬกาหนวยประมวลผล ส าหรบรนความสามารถในการประมวลผล 1.ทขนาดวารป 32 เทรดและจ านวนของแบงเปน 16 การรองขอในการใชความจ าจะถกแบงออกเผนสองค าสง อนแรกเปนของครงแรกของวารปและอกค าสงส าหรบครงหลงของวารปและจะไมเกดการขดแยงในกรณทแตละครงวารปเขาถงความจ าทต าแหนงเดยวกน

ส าหรบรนความสามารถการประมวลผล 2.x ขนาดของวารปเปน 32 เหมอนกนแตขนาดของแบงคเปน 32 บต ดงนนค าสงในการเขาถงแบงคจะไมถกแบงออกเปนสองค าสงเหมอนในรนความสามารถการประมวลผล 1.x ดงนนกรณทเกดการขดแยงไดจะสามารถมาจากทงสองครงวารป

ความจ าภายใน ( local memory ) ความจ าภายในนนสามารถถกเขาถงไดเฉพาะเทรดทจองเทานน ทเปน

เชนนไมไดเปนเพราะมนอยใกลหนวยประมวลผล อนทจรงแลวมนอยภายนอกตวชพ ( off-chip ) ดงนนการใชความจ าภายในนนคอนขางชา และเปรยบเสมอนการเขาถงความจ าทวไป ทไมมการแคชบนรนความสามารถการประมวลผล 1.x ดงนนความจ าภายในนนไมไดมความเรวในการเขาถงดงเชนชอของมนในรนความสามารถการประมวลผล 1.x หนาทของความจ าภายในนนถกใชเกบคาตวแปรทเกดขนโดยอตโนมตซงเปนหนาทของ nvcc ทจะตดสนวามรจสเตอรเพยงพอทจะเกบตวแปรใหมหรอไม โดยปกตแลว nvcc จะเกบตวแปรทมขนาดใหญ เชน ตวแปรโครงสราง หรออะเรย ซงพนทของรจสเตอรอาจมไมเพยงพอตอการเกบคาของตวแปร และตวแปรเองอาจมการขยายขนาดภายหลง ในการดวา nvcc ตดสนใหตวแปรใดใชความจ าภายใด สามารถดไดจากผลลพธหลงการคอมไพลโปรแกรมทออกมาเปน PTX assembly (โดยเตมตวเลอกการคอมไพล –ptx เพมใหกบ nvcc) หลงจากการคอมไพลสวนแรก ถามการใชความจ าภายในเกดขนจะถกแสดงดวย .local ถาพบวาไมมการจองความจ าภายในในการคอมไพลสวนแรก อาจจะมการจองเปนความจ าภายในในภายหลงไดเนองจากขนาดของขอมลทเพมขนจนใหญเกนกวารจสเตอรจะเกบได การตรวจสอบวาตวแปรนนๆจะถกจองในหนวยความจ าภายในหรอไมนนไมสามารถท าได แตสามารถดไดในภาพรวมของดวยการใสตวเลอกในการคอมไพล –ptxas-options=-v

Page 17: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

17

ความจ าเทกเทอร (Texture Memory) ความจ าเทกเทอรเปนความจ าชนดอานอยางเดยวและมแคช ดงนนตว

ประมวลผลจะใชการอานเสยเวลาในการอานขอมลจากความเทกเทอรเพยงครงเดยวในตอนแรกหรอตอนทหาขอมลไมพบในแคช หลงจากนนตวประมวลผลจะอานขอมลจากแคชเพยงอยางเดยวท าใหใชเวลาในการอานนอยเมอขอมลไมมการเปลยนแปลงบอย ตวเทกเทอรแคชนนถกปรบแตงเพอใหเขากบภาพสองมต ดงนนเทรดทอยในวารปเดยวกนและอานความจ าเทกเทอรทต าแหนงเดยวกนจะเขาถงหนวยความจ าอยางมประสทธภาพ

ความจ าคงท (Constant Memory) มขนาด 64 กโลบตและไมไดอยบนชพ (off-chip) ลกษณะของความจ า

คงทคอมการแคชขอมลเหมอนกบความจ าเทกเทอรทจะมการอานขอมลมาใหมเฉพาะขอมลทหาไดจากแคชของมนท าใหท างานไดเรวในกรณทไมมการเปลยนแปลงขอมลบอย

การอานขอมลจากแคชของความจ าคงทมความเรวพอๆกบการอานขอมลจากรจสเตอรทเดยวบนเงอนไขทวาทกเทรดทอยในครงวารปอานขอมลทต าแหนงเดยวกน ส าหรบการอานขอมลทอยตางต าแหนงกนการเขาถงจะเปนไปในลกษณะอนกรม ดงนนความเรวในการอานเขยนขอมลของเทรดจะแปรผนกบจ านวนต าแหนงทแตกตางของความจ าทเขาถงจากเทรด

รจสเตอร (Register) โดยทวไปการเขาถงรจสเตอรจะใชเวลาเปนศนยตอการท างานหนงค าสง

แตบางครงอาจมความชาไดเนองจาก รจสเตอรอาน หลงจากมการเขยนขอมลหรออาจเปนการขดแยงของการเขาถงแบงคของรจสเตอร

การคางของการอานหลงการเขยนจะมระยะเวลาประมาณ 24 รอบนาฬกา แตการคางนแทบจะมองไมเหนเนองจากในกลมของตวประมวลผลจะมอยางนอย 192 เทรดทท างานอย (เทากบ 6 วารป) ส าหรบรนความสามารถการประมวลผล 1.x ส าหรบรนความสามารถการประมวลผล 2.0 นนมเทรด 768 ซงยงท าใหการคางแทบจะไมมเลย ตวคอมไพลและจดการตารางของเทรดจะจดตารางขอค าสงเพอหลกเลยงการเกดการขดแยงของแบงค มนจะท าไดดทสดถาจ านวนของเทรดตอบลอกเปนจ านวนเทาของ 64

ภาวะกดดนของรจสเตอร เปนชอเรยกของเหตการณทไมมรจสเตอรเพยงพอตองานท าปอนเขาไปยงตวประมวลผลถงแมวาตวประมวลผลนนจะมรจสเตอร 32 บต อยจ านวนหลกพน เพราะวารจสเตอรเหลานตองถกแบงโดยเทรดจ านวนมากเชนกนทอยบนตว

Page 18: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

18

ประมวลผลนน เพอปองกนเหตการณน สามารใสตวจ ากดจ านวนรจสเตอรทใชไดโดยใสmaxrregcount=N โดยท N คอจ านวนรจสเตอรสงสดทใหใชได

ใน GPU นนมหนวยความจ าหลายระดบแตท GPU ใชตดตอกบ CPU นนจะท าผานความจ าทวไปซงการเขาแลกเปลยนขอมลจะชากวาหนวยความจ าทอยกบหนวยประมวลยอยแตละตว ซงถกเรยกวา ความจ ารวมซงหนวยความจ านจะอยตดกบหนวยประมวลผลยอยแตละตวท าใหการแลกเปลยนขอมลสามารถท าไดดวยความเรวกวาความจ าทวไปและทก เทรด ภายในหนวยประมวลผลยอยนนสามารถเหนและแลกเปลยนขอมลระหวางเทรด ดวยความจ ารวมนได การเขยนโปรแกรมใหยายขอมลทตองเรยกประมวลผลมากหรอบอยใหมาอยทความจ ารวมแทนกเปนการเพมความเรวใหกบการประมวลผลดวยเชนกน

การน า GPU ประยกตเขากบงานทวหรอ General Purpose computing on Graphics Processing Units (GPGPU) ชดพฒนาของ NVidia น ท าใหเราสามารถใชประโยชนของสถาปตยกรรมทออกแบบมาส าหรบการประมวลผลแบบขนาน มาชวยเพมความเรวในการค านวณงานทสามารถออกแบบใหอยในรปแบบขนานได ดวยการใชภาษา C ในการเขยนโปรแกรมท าใหนกพฒนาเรยนรเพมเตมอกเลกนอยกสามารถเขยนโปรแกรมไดดวยโมเดลการเขยนโปรแกรมแบบขนานทถกออกแบบมาส าหรบการแกปญหาโดยใชหลกสามอยาง คอ การแบงงานออกเปนกลมของ เทรด , ความจ ารวม และ การ synchronization การแบงงานทไมเกยวเนองหรอไมขนตอกนไปยงแตละบลอกและการแบงปญหายอยทตองใชการตดตอแลกเปลยนขอมลกนใหอยในรปแบบ เทรด ในแตละบลอกอกท ซง synchronization จะเขามาเพอท าใหแนใจวางานทก าลงด าเนนอยในแตละ เทรด จะมาหยดพรอมกนทจดทเราก าหนด เราจงไดเหนงานวจยทน า GPU มาใชงานกบ ขนตอนวธ ทเปนทรจกและสามารถเพมความเรวใหกบวธขนตอน เหลานนได เชน งานวจยดงตอไปน

Jun Li [6] ทน าความสามารถในการค านวณททรงพลงของ GPU มาประยกตใชกบขนตอนวธเชงคาดการณลวงหนา-ยอนหลง (forward-backward) ซงมความซบซอนเชงเวลาเทากบ โดยขนตอนแรกคอออกแบบการท างานแบบขนานใหขนตอนการหาความนาจะเปนใหกบการคาดการณลวงหนาแตละเสนทาง และขนตอนทสองคอการรวมคาความนาจะเปนทงหมดดวยวธแบบขนานอกครง ในงานวจยยงไดใชประโยชนจากความเรวของหนวยความจ าทเรวกวาหนวยความจ าบน CPU เพอเพมความเรวขนอก งานวจยนสามารถเรงความเรวใหกบ Hidden Markov Models ได 4-25 เทา

Page 19: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

19

งานของ Stefano [7] ทน า GPU มาเรงความเรวของโครงขายประสาทเทยม (Artificial Neural Network) ในงานการเรยนรจ าเสยงโดยใชกระบวนการฝกฝนแบบสงคายอนกลบ (back-propagation) งานวจยไดท าการเรยนรโดยใชแบบจ าลองของเสยงทมค าศพทขนาดใหญ ในงานวจยไดแสดงการเปรยบเทยบความเรวทไดจากการใชมลตเทรดบนหนวยประมวลผลหลายแกนกบความเรวทไดจากตวประมวลผลกราฟก ซงแสดงใหเปนวาสามารถลดเวลาทตองใชในการเรยนรชดค าศพทขนาดใหญนลงได 6 เทา

งานของ Hongwei [8] ทน า GPU มาเรงความเรวของ Message Digest algorithm 5(MD5) ดวยการออกแบบเปนสองขนตอน ขนตอนแรกคอการประมวลผลเบองตนของ ขอความเชนการส ารวจเขาไปในขอความเพอหาชดของตวอกษรทจะเขารหสและหาความยาวของขอความ ขนตอนทสองคอการเขารหสพรอมๆกนหลายขอความ โดยหนงเทรดแทนการท างานของการเขารหสใหกบหนงขอความ งานวจยไดแสดงใหเหนวาสามารถเพมความเรวไดมากกวา 10 เทาของการท างานบน CPU

Page 20: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

20

บทท 3

วธด ำเนนกำรวจย ความสามารถในการประมวลผลแบบขนานของหนวยประมวลผลกราฟก สามารถ

น ามาประยกตใชกบขนตอนวธอบตการณรวมกนเพอเพมความเรวไดดวยการศกษาและปฏบตตามแนวทางดงตอไปน 3.1 กำรค ำนวณประสทธภำพกำรใชงำนหนวยประมวลผลกรำฟก

หนงในความสามารถของหนวยประมวลผลกราฟก คอ การทหนวยประมวลกราฟกออกแบบมาเพอการค านวณปรมาณมาก โดยการจดวางหนวยความจ าทตดอยกบแตละหนวยประมวลผล ดงนนการทใชหนวยประมวลผลไดอยางเตมความสามารถ จ านวนเทรดตอบลอกเปนปจจยหนง จ านวนเทรดตอบลอกทสอดคลองกบจ านวนของหนวยประมวลผลจะแตกตางกนไปตามรนของความสามารถในการค านวณของอปกรณประมวลผลกราฟก

รปท 3-1 ตารางการค านวณการครอบครองหนวยประมวลผลกราฟกของ NVIDIA

Page 21: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

21

ส าหรบการค านวณจ านวนเทรดตอบลอกนน ชดพฒนาของ NVIDIA ไดใหเครองมอซงเปนตารางค านวณการครอบครองหนวยประมวลผลกราฟกมาดงรปท 3-1 โดยการใชเบองตนคอ

1. เลอกรนของความสามารถในการค านวณของอปกรณประมวลผลกราฟกใหตรงกบรนของอปกรณประมวลผลกราฟกทใช ซงรนของความสามารถในการประมวลผลทสงกวาหรอเทากบ 2 นน จะตองเลอกหนวยความจ ารวมกนทตรงกบรนของอปกรณประมวลผล

รปท 3-2 ตวอยางขอความทไดจากการคอมไพลเคอรเนล SortFitness ดวยตวเลอกการคอมไพล --ptxas-options=-v จะไดจ านวนรจสเตอรทใชไป 15 รจสเตอรและหนวยความจ ารวมกนทใชไป 16 ไบท

2 ใสจ านวนรจสเตอรและหนวยความจ ารวมกนส าหรบแตละเคอรเนลทได

จากขนตอนการคอมไพลโปรแกรมดวยตวเลอกการคอมไพล --ptxas-options=-v เพอใหตวคอมไพล nvcc แสดงรายละเอยดของรจสเตอรและหนวยความจ ารวมกนออกมาดงรปท 3-2 เตมตวเลขรจสเตอรในชอง Registers Per Thread ส าหรบตวเลขของหนวยความจ ารวมกนทแสดงออกมาในขนตอนคอมไพลโปรแกรมนนเปนจ านวนหนวยความจ ารวมกนทระบจ านวนทแนนอนทยงไมนบรวมหนวยความจ ารวมกนแบบภายนอกซงใชตวก าหนดชนดของตวแปรแบบ extern __shared__ ซงผ ใชตองนบเองวาใชหนวยความจ ารวมกนในแตละเคอรเนลไปเปนจ านวนเทาไหรลงไปยงชอง Shared Memory Per Block (bytes)

1>ptxas info : Compiling entry function

'_Z14SortFitnessGPUiiP9stFitnessPiS1_S1_' for 'sm_20'

1>ptxas info : Function properties for

_Z14SortFitnessGPUiiP9stFitnessPiS1_S1_

1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads

1>ptxas info : Used 15 registers, 16+0 bytes smem, 72 bytes cmem[0],

16 bytes cmem[14]

Page 22: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

22

รปท 3-3 กราฟแสดงการครอบครองของหนวยประมวลผล

3. ปรบจ านวนเทรดตอบลอกในชอง Threads Per Block เพอใหไดคาการ

ครอบครองมากทสด เพอใหการใชหนวยประมวลผลมประสทธภาพมากทสดจากรปท 3-3 จ านวนเทรดตอบลอกทท าใหจ านวนเหมาะสมทสด 48 วารป (จะแตกตางตามรนของอปกรณประมวลผลกราฟก) คอทจ านวนเทรดตอบลอกเทากบ 192 ,256 ,384 ,512 และ 768

ส าหรบการค านวณการครอบครองนนเปนเพยงวธหนงทท าใหประสทธผลการประมวลมากขนแตความเรวในการประมวลผลกยงขนอยกบปจจยอนๆ อยางเชน การจดเกบขอมลในหนวยความจ า ซงถาสามารถจดวางใหเรยงตอกนจะท าใหอตราการอานหรอเขยนขอมลมประสทธภาพสงขน 3.2 กำรก ำหนดตวแปรและคำเรมตน

การก าหนดตวแปรทเปนแบบทวไปซงตองใชแลกเปลยนขอมลทงอานและเขยนในการท างานของเคอรเนลทเกยวของ เมอเราพจารณาขนตอนทง 5 ขนตอนแลวเราจะพบวาจะตองมตวแปรทวไปทส าคญดงน

1. ตวแปรส าหรบเกบตาราง จะถกอานในขนตอนการก าเนดประชากรและจะถกเขยนเมออยในขนตอนปรบปรงตวก าเนด

Page 23: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

23

A B

C DB C D

A

C D

C

1st Path

A C D

B

A D

C

2nd

Path

m path

2. ตวแปรส าหรบเกบประชากร ในขนตอนก าเนดประชากรจะสรางประชากรซงเปนล าดบของเมองทตอเนองกนและน าล าดบนไปเกบในตวแปรส าหรบเกบประชากร ตวแปรนจะถกน าไปใชอกครงในขนตอนการปรบปรงประชากร

3. ตวแปรส าหรบเกบระยะทางระหวางเมอง ตวแปรนจะถกอานโดยเคอรเนลทท าหนาทรวมระยะทางของล าดบเมองทถกสรางจากขนตอนก าเนดประชากร

3.3 กำรประยกตขนตอนวธอบตกำรณรวมกนบนหนวยประมวลผลกรำฟก

ขนตอนวธอบตการณรวมกนแบงออกเปน 5 ขนตอนหลกเชนกนและน ามาออกแบบการท างานแบบขนานไดดงน 3.3.1 กำรก ำหนดคำเรมตน

ในขนตอนนการท างานไมตางจากทกลาวถงในทฤษฏซงจะท างานครงเดยวตอนเรมตน จงไมมการออกแบบใดๆ เพอเพมความเรวและขนตอนนจะประมวลผลบนหนวยประมวลผลกลางตามปกต 3.3.2 กำรสรำงกลมของประชำกร

ก. ลกษณะงาน ขนตอนวธจะสรางค าตอบซงเปนล าดบงานยอยทเรยงตอกนออกมาจ านวนหนง

จากการสมเลอกแตละโหนดตามความนาจะเปนทอยใน ตวก าเนด เมอเปรยบเทยบกบปญหา TSP ค าตอบคอ ล าดบของเสนทางทสามารถผานทกเมองไดโดยไมยอนกลบมายงเมองทไปมาแลว

ภาพท 3-4 (ก) แสดงเสนทางระหวางเมองในปญหา TSP (ข) แสดงการสรางค าตอบซงเปนเสนทางจากเมองสเมองจ านวน m เสนทาง

(ก) (ข)

Page 24: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

24

ข. การแบงงาน ในขนตอนน งานทเกยวของคอการสมหาเสนทางตามความนาจะเปนทอยในตว

ก าเนด เมอพจารณาความเกยวของของงานในการหาเสนทางแตละเสนทางแลว สามารถพจารณาไดวาไมมความเกยวเนองของกน โดยการหาเสนทางแตละเสนจะใชเฉพาะขอมลความนาจะเปนจากตวก าเนด รวมกนและไมมการเขยนคาใดๆ กลบลงไปยงตวก าเนด ดงนนเราสามารแบงงานออกใหอยในรปของบลอกและเทรด โดยแตละเทรดจะท าการก าเนดเสนทางเปนอสระโดยไมเกยวของกบเทรดอน

b blocks

t threads

Generating

a population

Generating

a population

Generating

a population

Generating

a populationGen...

Generating

a population

Generating

a population

Generating

a population

Generating

a populationGen...

Generating

a population

Generating

a population

Generating

a population

Generating

a populationGen...

รปท 3-5 การแบงงานของการก าเนดเสนทางออกเปน b บลอก และ t เทรด โดยงานในแตละเทรดนนท างานเปนอสระไมเกยวของกบเทรดอนทงในบลอกเดยวกนและตางบลอก

ส าหรบการหาจ านวนเทรดทเหมาะสมในแตละบลอกนนยงคงใชตารางค านวณ

“CUDA Occupancy Calculator” โดยปอนขอมลรจสเตอรและหนวยความจ ารวมกนทไดออกมาจากการคอมไฟลรหสตนฉบบของโปรแกรม จากนนตารางจะแสดงจ านวนเทรดตอบลอกทเหมาะสมทสดออกมาบนกราฟ ใหเราเลอกจ านวนเทรดตอบลอกทมการครอบครองหนวยประมวลผลมากทสดมา ส าหรบจ านวนบลอกคอการน าจ านวนประชากร m ประชากรมาหารดวยจ านวนเทรด t ดงนนจะได

เมอเราก าหนดจ านวนบลอกและเทรดแลวจะสรางเทรดออกมา

ทงหมด b×t ตว ดงนนเคอรเนลการก าเนดประชากรจะถกเรยกเปนจ านวนเทากน ขนตอนการท างานของเคอรเนลสามารถเขยนเปนล าดบไดดงน

Page 25: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

25

1. สมตวเลขเพอหาเมองแรก โดยสมจากความนาจะเปน

( ) ทซง

คอจ านวนเมอง 2. วนรอบตามจ านวนเมองทเหลอ รอบ

ก. สมตวเลขเพอหาเมองถดไป โดยดวาตวเลขทไดมาตกอยในชวงความนาจะเปนรวม ( | ) ของ ใดๆ

ข. ลบเมองทเลอกแลวออกจากเมองทสามารถเลอกได ค. วนซ าจนครบตามจ านวนรอบ

3. สงค าตอบซงอยในรปของล าดบเมองกลบไปเกบทตวแปรแบบทวไป 3.3.3 กำรประเมนคำควำมเหมำะสมของประชำกรแตละตว ก. ลกษณะงาน การประเมนคาความเหมาะสมของประชากรคอการหาคาความเหมาะสม (Fitness) ของแตละค าตอบ ซงประเมนไดจากฟงกชนคาความเหมาะทจะแตกตางกนไปตามลกษณะปญหา หากเปรยบเทยบกบปญหา TSP ในขนตอนนคอการหาระยะทางรวมของล าดบเมองทสรางจากขนตอนก าเนดประชากร โดยน าเอาระยะทางระหวางเมองมารวมกนออกมาเปนคาความเหมาะสมของแตละเสนทาง

A->C

4

C->D

6

D->B

4

B->E

6

E->A

7

C->B

3

B->A

1

A->E

7

E->D

6

D->C

2

C->D

2

D->E

6

E->A

7

A->B

1

B->C

3

+ + + +

+ + + +

+ + + +

……...

……...

……...

27

19

19

รปท 3-6 การค านวณระยะทางรวมของแตละเสนทสรางขนมาจากขนตอนสรางประชากร

ข. การแบงงาน การกระจายงานทสามารถท าไปพรอมกนเปนวธทท าใหการประมวลผลรวมนนมความเรวทสด สามารถแบงงานของการรวมระยะทางของแตละเสนทางใหไปอยใน บลอกและเทรด โดยการค านวณหาจ านวนเทรดตอบลอกทเหมาะสม ใชการปอนคารจสเตอรและ

Page 26: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

26

หนวยความจ ารวมทถกใชไปในเคอรเนลนซงหาไดจากการขนตอนการคอมไฟลโปรแกรมลงไปยงตาราง “CUDA Occupancy Calculator” ทายทสดกราฟจะแสดงคาเทรกตอบลอกทเหมาะสม

A->C

4C->D

6

D->B

4

B->E

6E->A

7

C->B

3B->A

1A->E

7E->D

6

D->C

2

C->D

2D->E

6E->A

7A->B

1

B->C

3

+ + + +

+ + + +

+ + + +……...

……...

……...

27

19

19

t

threads

b blocks

t

threads

รปท 3-7 การแบงงานของการประเมนคาความเหมาะสมของ m เสนทาง ไปยง m บลอก และ

ภายในแตละบลอกแบงเปน n+1 เทรด

สามารถแบงงานของการประเมนคาความเหมาะสมออกไดเปน b บลอกและ t เทรด โดยจ านวนของบลอกหาไดจากการน าจ านวนประชากรทงหมดหารดวยจ านวนเทรดตอบลอก

โดย m จ านวนประชากร ส าหรบขนตอนการท างานยอยในแตละเทรดหรอแต

ละเคอรเนลของการประเมนคาความเหมาะสมมดงน 1. วนรอบเปนจ านวน เมอง 2. อานคล าดบของเมอง จากตวแปรทวไปทเกบประชากร 3. อานคาระยะทางระหวางเมองของ จากตวแปรทวไปทเกบ

ระยะทางระหวางเมอง 4. บวกระยะทาง 5. เรมขนตอนสาม โดยเลอนไปยงคล าดบถดไป i = i + 1 จน รอบ

3.3.4 กำรเรยงคำควำมเหมำะสม ในการเรยงล าดบคาความเหมาะสมน เราไดเลอกการเรยงล าดบแบบประสารเพราะมความเรวในการเรยงล าดบเรวทสดแบบหนง คอ O(n log n) ส าหรบขอมล n ตว

ก. ลกษณะงาน จากหวขอท 3.3.3 หลงจากทเราได ขอมลชดหนงทเกบคาความเหมาะสมของทกตวอยางประชากรแลวน ามาเรยงล าดบจากนอยไปหามาก เมอประยกตใชกบปญหา TSP การ

Page 27: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

27

เรยงล าดบเสนทางทสนทสดไปหาเสนทางทยาวมากทสดเพอเปนขอมลใหการปรบปรงคาความนาจะเปนรวม ในหวขอ 3.3.5 ตอไป

ข. การแบงงาน จากการทดลองพบวาความเรวในการใช GPU นนไมไดใหความเรวมากนกเมอเทยบกบ CPU เนองจากจ านวนประชากรทน ามาเรยงนนมจ านวนไมมากดงนนจงไมสามารถใชการค านวณของ GPU ไดอยางเตมท ดงนนในขนตอนนจงให CPU เปนตวค านวณแทน เวลาทเกดจากการสงขอมลไปและกลบจากหนวยประมวลผลกลางมายงหนวยประมวลผลกราฟกนนไมไดใช

3.3.5 กำรปรบปรงคำควำมนำจะเปนรวม ส าหรบขนตอนสดทายคอการเรยนรและปรบปรงคาความนาจะเปนรวมใน ตวก าเนด ตามค าตอบแตละตว ทงกลมทดเพอน าไปปรบปรงคาเพมคาความนาจะเปนของการเกดค าตอบทด และลดความนาจะเปนของการเกดของค าตอบทไมด ก. ลกษณะงาน อนพตของกลมค าตอบทด และกลมทไมด จ านวนของตวอยางของกลมทดและไมดนนใชวธแบงอยางเทากนโดยเปนสดสวน C เปอรเซนตของจ านวนกลมค าตอบทงหมด กลม C เปอรเซนตของประชากรทมคาความเหมาะสมจากมากทสดลงมาจะจดวาเปนกลมของตวอยางทด และ C เปอรเซนตของประชากรทมคาความเหมาะสมนอยทสดขนไปยงมาก จะกลายเปนกลมตวอยางทไมด

0 0.25 0.25 0.25

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.25

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0

A

B

C

D

E

A B C D E

0 0.40 0.20 0.20

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.20

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0

A

B

C

D

E

A B C D E

( ) ( )

0 0.10 0.30 0.30

0.25 0 0.25 0.25

0.25 0.25 0 0.25

0.25 0.25 0.25 0

0.30

0.25

0.25

0.25

0.25 0.25 0.25 0.25 0

A

B

C

D

E

A B C D E

( )

รปท 3-8 (ก) แสดงคาเรมตนของตวก าเนด (ข) แสดงการปรบปรงคาความนาจะเปนในกรณท (A,B) เปนสวนหนงของเสนทางกลมด ต าแหนงทไมใช (A,B) จะถกดงคาความนาจะเปนออกไป

Page 28: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

28

0.05 และน าไปเพมใหกบ (A,B) (ค) แสดงการกระจายคาความนาจะเปนใหกบ คอลมนอน ในกรณท (A,B) เปนสวนหนงของเสนทางกลมไมด

งานตอมาทตองท า คอ การพจารณาหนวยยอยของค าตอบทดและไมดมาเพม

หรอลดความนาจะเปนของ ตวก าเนด หากยกตวอยางปญหา TSP กลมตวอยางทดคอ กลมเสนทางทคาความเหมาะสมมากทสด หรอเปนกลมเสนทางทสนทสดจ านวน C เปอรเซนตของเสนทางทงหมด เสนทางระหวางเมอง A->B ซงเปนสมาชกของกลมเสนทางทด A->B->C->D->E->A แลว คาความนาจะเปนของ (A,B) , (A,C) ,(A,D) ,(A,E) จะถกลดลงและรวบรวมไปเพมใหกบ (A,B) ดวยอตราสวนทเทากน ภาพท 3-8 (ก) แสดงคาเรมตน ซงความนาจะเปนของการเลอกทกเสนทางจะมคาเทากน คอ 0.25 ภาพท 3-8 (ข) เปนการปรบปรงคาความนาจะเปนในกรณท (A,B) เปนสวนหนงของเสนทางกลมด ต าแหนงทไมใช (A,B) จะถกดงคาความนาจะเปนออกไป 0.05 และน าไปเพมใหกบ (A,B) ในทางตรงกนขาม ถา (A,B) เปนสวนหนงของเสนทางกลมไมด คาจาก คอลมน (A,B) จะถกกระจายไปใหกบ คอลมนอนทไมใช (A,B) ดงภาพท 3-8 (ค)

ข. การแบงงาน จากทกขนตอนดานบน จะไดตารางของประชากรทเรยงล าดบตามคาความ

เหมาะสมแลว ในขนตอนนจะดงเอากลมของประชากรทดจ านวน j ตวหรอ C% ของประชากรทงหมดและกลมของประชากรทไมดจ านวนอก j ตวหรอ C% เชนกนรวมแลว 2j ตวหรอ 2C% ของประชากรทงหมดมา ปรบปรง ตวก าเนด จากลกษณะงานทไดอธบายไป เมอน าประชากร 1 ตวขนาด k+1 ไปปรบปรง ตวก าเนด แลวจะเกดงานขน k2 ส าหรบการปรบปรงตวเลขความนาจะเปนรวมทงหมดใน ตวก าเนด ขนาด kxk ตว ดงนนเมอน าประชากรจ านวน 2j ตว ไปปรบปรง ตวก าเนด จะเกดงานขน 2jk2

เมอมองลกลงไปอกส าหรบงานน จดประสงคหลกในงาน คอ การคนเขาไปใน population matrix ขนาด i x (k+1) (เมอ i คอจ านวนประชากรทสรางขนมาในแตละรน และ k คอขนาดของปญหา ) แลวนบจ านวนคล าดบ rc X,X ทพบในกลมดไดผลรวมออกมาเปน rc,r และคล าดบ pc X,X ทพบในกลมไมดไดผลรวมออกมาเปน pc,p จากนนจงน าเขาสมการ (1),(2) เพอปรบปรง ตวก าเนด

แบงงานออกเปนสองขนตอนใหญส าหรบการประมวลผลแบบขนานคอ แบงงานการตรวจสอบวามคล าดบ rc X,X และ pc X,X ใน population matrix ออกเปน 2j x k บลอก

Page 29: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

29

และน าผลไปเกบไวในเมทรก 3 มต ซงผลลพธชวคราวมขนาด 2j x k x k ดงภาพ 3-9 (ก) ขนตอนทสองรวมคาในมต 2j ใหเหลอค าตอบเปนเมทรก 2 มต ขนาด k x k งานจะถกแบงออกใหอยในรปเทรด เพอใชการรวมแบบขนานเชนเดยวกบทใชในขนตอนประเมนคาความเหมาะสมของประชากรเพอเพมความเรว สวนงานในมต k x k นนเปนงานทไมเกยวเนองกนจงสามารถแบงงานใหอยในรปแบบบลอก k ได ดงเชนภาพท 3-9 (ข)

t threads

j blocks

(Bad

candidate

C% of m

population)

j blocks

(Good

candidate

C% of m

population)

k

Temporary Matrix size 2jk2

Population matrix size i x (k+1)

i population

2j

( ) Generate temporary matrix

Count & Store

t threads

( ) Update generator matrix

Temporary Matrix size 2jk2

Generator size k x k

Update generator

รปท 3-9 (ก) การปรบปรงคาในตวก าเนด เรมจากการนบจ านวนคล าดบ rc X,X และ pc X,X

และน าไปเกบไวในตาราง (ข) แสดงการรวมคาในมต 2j เพอน าไปปรบปรงคาในตวก าเนด

Page 30: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

30

บทท 4

กำรทดลองและผลกำรทดลอง

เครองมอทใชในกำรวจย

ในการทดลองใชหนวยประมวลผลกลาง Intel core i3 ความเรวนาฬกา 2.1 GHz หนวยความจ า 8 GB ซงจะใชประมวลผล วธอบตการณรวมกนแบบประมวลผลแบบล าดบตอเนองและหนวยประมวลผลกราฟก NVIDIA Geforce GT 540 M ซงมความเรวของสญญาณนาฬกา 1344 MHz ขนาดของหนวยความจ าภายใน 2 GB โดยจะใชท าสอบประมวลผลวธอบตการณรวมกนแบบขนาน

กำรทดลอง

การทดลองจะท าการประมวลผลวธอบตการณรวมกนทงแบบประมวลผลแบบล าดบตอเนองและแบบประมวลผลแบบขนาน ขอมลทไดจากการทดลองจะอยในรปของเวลา และคาเหมาะสมทสดของปญหา การเดนทางของนกขาย (TSP) ทค านวณออกมาไดจากวธอบตการณรวมกนทงสองแบบ

การวดเวลา

ฟงกชนทใชเพอวดเวลานนใชฟงชนกทวดเวลาของภาษา C ไดแกฟงกชน QueryPerfomanceFrequency [11] และฟงกชน QueryPerformanceCounter [12] ท างานรวมกนเพอเรมตนการวดเวลา

รปท 4-1 ฟงกชนทใชในการเรมตนจบเวลา ฟงกชน startWatch ซงภายในใช ฟงกชน QueryPerformanceFrequency ใชเพอหาความถของของตววดประสทธภาพทก าลงใชอย และ

ฟงกชน QueryPerformanceCounter ใชเพอเรมตนนบเวลา

void startWatch()

{

QueryPerformanceFrequency( (LARGE_INTEGER *)&pf );

freq_ = 1.0 / (double)pf;

QueryPerformanceCounter( (LARGE_INTEGER *)&baseTime_ );

}

Page 31: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

31

ฟงกชน QueryPerfomanceFrequency นนใชเพอหาจ านวนหนวยเวลาทวดไดในหนงวนาทของตววดประสทธภาพความละเอยดสงทใชอย ซงถาหนวยประมวลผลกลางทใชอยนนไมสนบสนนตววดประสทธภาพความละเอยดสงนคาทไดกลบมาจะเปน 0 คาไดมาจากฟงกชนนเปนจ านวนเวลาทนบไดในหนงวนาท ดงนนความถตองน ามาหารดวย หนงเพอกลายเปนความถ หลงจากนนฟงกชน QueryPerformanceCounter จ าท าการเรมจบเวลาโดยคาทคนมาจะเปนเวลา ณ จดเรมตน

รปท 4-2 ฟงกชนทใชในการหยดจบเวลา ฟงกชน startWatch ซงภายในใช ฟงกชน QueryPerformanceFrequency ใชเพอหาความถของของตววดประสทธภาพทก าลงใชอย และ

ฟงกชน QueryPerformanceCounter ใชเพอเรมตนนบเวลา

หลงจากประมวลผลเสรจ ฟงกชน QueryPerformanceCounter จะถกเรยกอกครงและคาทไดจากฟงกชนน คอ เวลา ณ เวลาปจจบน ดงนน เวลาทใชไปคอการน าคาเวลาทเราไดตอนเรมตนการจบเวลา มาลบออกจากคาเวลาทได ณ เวลาปจจบน

รปท 4-3 ต ำแหนงกำรจบเวลำโดยเรมจำกกำรจองหนวยควำมจ ำและหยดหลงจำกประมวลผลเสรจ

void stopWatch()

{

QueryPerformanceCounter( (LARGE_INTEGER *)&val );

dif = (val - baseTime_) * freq_;

printf("Execute time %g",dif);

}

Page 32: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

32

การวดเวลาจะเรมตนวดจากการสงขอมลน าเขาทอยในรปตารางของความยาวระหวางเมองของแตละเมอง ไปใหแกขนตอนการประมวลผลเพอใหไดค าตอบหลงจากประมวลและไดค าตอบเปนคาทเหมาะส าหรบปญหาออกมา จะหยดจบเวลา เวลาทไดจะอยในรปของวนาท

การวดเวลาทงบนหนวยประมวลผลกลางและบนหนวยประมวลผลกราฟกนนไมแตกตาง แตเนองจากหลกการท างานของค าสงทเรยกไปยงเคอรเนลของหนวยประมวลผลกราฟกนน เคอรเนลจะคนคากลบมายงฝงของหนวยประมวลผลกลางทนทโดยมไดตองประมวลผลใหเสรจสนกอน ดงนนหนวยประมวลผลกลางจะเรยกไปยงเคอรเนลถดไปทนท เมอเปนเชนนการวดเวลาส าหรบหนวยประมวลผลกราฟกโดยใชฟงกชน QueryPerformanceFrequency และ QueryPerformanceCounter จะผดพลาด เวลาทไดจะเปนแคเวลาทหนวยประมวลผลกลางใชเรยกไปยงเคอรเนลเทานน ดงนน กอนทจะเรมเรยกฟงกชนวดเวลาตองท าการท าใหตรงกน (synchronization) โดยใชฟงกชนของ CUDA คอ cudaThreadSynchronize() [3-1]ส าหรบ CUDA เวอรชนต ากวา 2.0 และส าหรบเวอรชนทสงกวาหรอเทากบ 2.0 จะใชฟงกชน cudaDeviceSynchronize() [3-2] เมอเรยกฟงกชนเหลาน จะท าให ณ จดทเรยก เทรดของหนวยประมวลผลกลางและตวควบคมของหนวยประมวลผลกราฟกมการท าใหตรงกนดานเวลา หลงจากเรยกฟงกชน cudaDeviceSynchronize() แลวจงคอยเรยกฟงกชนวดเวลา และท าเชนเดยวกนหลงจากเรยกเคอรเนลเพอประมวลผลเสรจสนแลว เมอตองการวดเวลาจะตองเรยกฟงกชน cudaDeviceSynchronize() อกครงแลวจงเรยกฟงชนกวดเวลา

เวลาทเกดจากการจองหนวยความจ าเรมตนและเวลาจากการคนหนวยความจ า นนจะไมไดถกน ามาวดดวยเนองจากวตถประสงคในการใชงานทตองการใหสามารถท าการทดลองซ า ไดเรอยอกๆ เพอปรบเปลยนพารามเตอร และเกบผลการทดลองโดยทไมตองออกจากโปรแกรม ดงนนเราจงวดเฉพาะเวลาทเกยวของในแตละรอบจรง

กำรเกบขอมล

ขอมลเวลาทไดจากการทดลอง 10 ครง ทงการทดลองบนหนวยประมวลผลกบหนวยประมวลผลกลางและหนวยประมวลผลกราฟกจะถกน ามาหาคาเฉลยเพอเปรยบเทยบความเรวของทงสองหนวยประมวลผล โดยจะน าเวลาเฉลยทไดจากหนวยประมวลผลกลางมาหารดวยเวลาเฉลยทไดจากหนวยประมวลผลกราฟก ดงนน ผลทายสดของการเปรยบเทยบเวลาจะ

Page 33: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

33

ออกมาอยในรปจ านวนเทา มากกวานนการเปรยบเทยบ จะรวมถงการเปรยบเทยบความเรวในแตละระดบประชากร ในการทดลองนเราไดใชตวอยางประชากรท 500 และ 1000 ซงเพยงพอส าหรบการแสดงความแตกตางของความเรวในการประมวลผลของทงสองหนวยประมวล

การน าวธการแกปญหาใดๆ ไปประยกตจากการประมวลผลแบบล าดบตอเนองไปเปนการประมวลผลแบบขนาน สงทไมเปลยนแปลงคอลกษณะของการหาค าตอบ ค าตอบทไดควรมคาทใกลเคยงกน ส าหรบ วธการอบตการณรวมกน คาทเหมาะสมทไดมาจากการประมวลผลจากการประมวลผลทงสองแบบตองมคาใกลเคยงกน และไมหางจากคาทดทสดของปญหา

ผลกำรทดลอง

จากการทดลองโปรแกรมทงบนหนวยประมวลผลกลางและบนหนวยประมวลผลกราฟกโดยใชฟงกชนวดเวลาอนเดยวกน ผลการทดลองสามารถแสดงดงตาราง 4-1

ปญหำ ประชำกร หนวยประมวลผล เวลำเฉลย (วนำท) ควำมเรว(เทำ)

grostel24 500 CPU 2.360 7.08

GPU 0.333

1000 CPU 4.672 8.74 GPU 0.534

grostel48 500 CPU 6.017 6.85

GPU 0.878

1000 CPU 12.815 9.50 GPU 1.349

pr76 500 CPU 14.121 6.48

GPU 2.179

1000 CPU 29.901 7.79 GPU 3.835

kroA100 500 CPU 18.776 5.31

GPU 3.536

1000 CPU 41.662 6.57 GPU 6.338

ตารางท 4-1 เวลาทใชในการประมวลผลหนวยประมวลผลกลางและหนวยประมวลผลกราฟกและจ านวนเทาของความเรวของหนวยประมวลผลกราฟกตอหนวยประมวลผลกลาง

Page 34: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

34

ตารางท 4-1 เปรยบเทยบเวลาทใชไปในการทดลองโปรแกรมระหวางหนวยประมวลผลกลางและหนวยประมวลผลกราฟกโดยใชพารามเตอรเหมอนกน โปรแกรมท างานเปนจ านวน 200 รอบหรอ 200 รน จ านวนรนซงเปนพารามเตอรตวหนงของขนตอนวธพนธกรรม ตวเลข 200 ทใชมไดมผลตอการเพมขนหรอลดลงของอตราสวนความเรวในการท างานของโปรแกรมเมอเปรยบเทยบทงสองหนวยประมวลผล เวลาทใชจะเพมขนแปรผนตรงตอจ านวนรอบ ตวเลขทน ามาใชนเปนจ านวนรอบทขนตอนวธอบตการณรวมกนสามารถใหคาทดทสดส าหรบค าตอบของปญหาการเดนทางของนกขายท 24 เมองคอ 1272

ความเรวทหนวยประมวลผลกราฟกสามารถท าไดเรวกวาหนวยประมวลผลกลางนนจะเพมขนเมอเพมจ านวนประชากรซงเปนพารามเตอรหนงของขนตอนวธอบตการณรวมกน

ส าหรบการประเมนวาขนตอนวธอบตการณรวมกนสามารถประยกตไปท างานแบบขนานบนหนวยประมวลผลกราฟกไดหรอไมนน ส าหรบค าตอบทไดมการสมเขามาเกยวของดวย ดงนนดผลของค าตอบทไดจากขนตอนวธอบตการณรวมกนวาใกลเคยงกบผลทไดจากการท างานบนหนวยประมวลผลกลางหรอไม โดยคาเฉลยนนไมควรหางกนมาก

ปญหำ หนวยประมวลผล จ ำนวนประชำกร

500 1000 ดทสด เฉลย ดทสด เฉลย

Grostel24 CPU 1272 1318 1272 1291

GPU 1272 1283 1272 1275

Grostel48 CPU 5648 5975 5606 5909

GPU 5414 5529 5170 5379

Padberg/Rinaldi 76

CPU 135218 142694 124292 134268

GPU 137041 143889 131592 135548

kroA100 CPU 38698 39950 35616 38417

GPU 36127 37309 33065 34172

ตารางท 4-2 ค าตอบทไดจากขนตอนวธอบตการณรวมกนบนหนวยประมวลผลกลางและหนวยประมวลผลกราฟก

Page 35: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

35

จากตารางท 4-2 สงเกตไดวาค าตอบทไดจากขนตอนวธอบตการณรวมกนบนหนวยประมวลผลกราฟกนนมคาทไมแตกตางจากหนวยประมวลผลกลางอยางมนยยะอกทงทจ านวนเมอง 24 เมองยงใหคาทเปนค าตอบทดทสดคอ 1272

จ านวนประชากร ขนตอน

500 1000

CPU GPU CPU GPU ก าเนดประชากร 0.0207 67.94% 0.0025 54.19% 0.0432 67.94% 0.0034 45.88% ประเมนคาความเหมาะสม 0.0003 0.93% 0.0001 2.94% 0.0005 0.93% 0.0003 3.72% จดเรยงประชากร 0.0007 2.19% 0.0007 13.44% 0.0011 2.19% 0.0011 14.41% ปรบปรงตวก าเนด 0.0088 28.94% 0.0013 29.43% 0.0177 28.94% 0.0027 36.00% รวมเวลา 0.0305 0.0045 0.0624 0.0074

ตารางท 4-3 เวลาทใชไปในแตแตละขนตอน เปรยบเทยบบนหนวยประมวลผลกลางและหนวยประมวลผลกราฟก ท 48 เมองและจ านวนประชากร 500 และ 1000

เมอพจารณาตารางท 4-3 พบวาขนตอนทใชเวลาท างานมากทสดคอการก าเนดประชากร ซงใชเวลา 67.94%, 54.19% และ 67.94% และ 53.51% ของเวลาทใชในประมวลผลทงหมดทหนวยประมวลผลกลางและหนวยประมวลผลกราฟกทประชากร 500 และ 1000 ตามล าดบ และงานทใชเวลาเปนอนดบสอง คอ งานปรบปรงตวก าเนด ใชเวลาเปน 28.94% ,29.43% และ 29.43 % ทหนวยประมวลผลกลางและหนวยประมวลผลกราฟก ทจ านวนเมอง 48 เมอง ซงหากพจารณาแลวถาสามารถลดเวลาของการก าเนดประชากรและปรบปรงตวก าเนดไดมากเทาไรจะเพมความเรวไดเทานน

Page 36: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

36

ขนตอน ตามทฤษฎ ประชากร 500

ประชากร1000

ประชากร1500

ประชากร2000

ก าเนดประชากร 66.7% 16% 32.4% 47.9% 61.2% ประเมนคาความเหมาะสม 100% 16.3% 31.9% 46% 61% ปรบปรงตวก าเนด (1) 33.3% 26.8% 26.8% 26.8% 26.8% ปรบปรงตวก าเนด (2) 100% 74.1% 74.3% 74.4% 74.5%

ตารางท 4-4 เปอรเซนตการใชงานหนวยประมวลผลแตละขนตอน ทประชากร 500, 1000, 1500 และ 2000

จากการวดเปอรเซนตการใชงานหนวยประมวลผลของอปกรณประมวลผลกราฟกซงไดจากการทดสอบบน NVIADIA visual profiler ซงเปนเครองมอทอยในชดพฒนาโปรแกรม CUDA เมอท าการประมวลผลโดยใหแสดงผลลพธจากการวเคราะหการใชงานหนวยประมวลผล สงเกตไดวาเปอรเซนตเพมขนเรอยๆ เมอเพมจ านวนประชากรทงในขนตอนก าเนดประชากรและประเมนคาความเหมาะสม ในขณะทในขนตอนปรบปรงตวก าเนดทแบงเปนขนตอนยอยสองขนตอนไมมการใชงานหนวยประมวลผลเพมขนเลย ถอไดวาคอนขางคงท

จากตารางท 4-4 จงสอดคลองกบตารางท 4-3 ทซงความเรวทเพมขนเมอเพมจ านวนประชากรนนไดมาจากขนตอนก าเนดประชากรซงใชเวลาในการประมวลผลมากทสด ดงทไดกลาววาหากลดเวลาในสวนของการก าเนดประชากรไดมากเทาไรยงมสวนในการลดเวลารวมในการประมวลผลทงหมดไดมากขนเทานน การลดของเวลาในขนตอนก าเนดประชานนเปนเพราะ ยงเพมจ านวนประชากรมากขนการใชหนวยความจ ายงมากขนตามล าดบ ท าใหเวลาทหนวยประมวลผลหยดท างาน (idle) นอยลง หนวยประมวลผลท างานเตมเวลามากขนไดงานทมากขน

การเพมขนของเปอรเซนตการใชงานหนวยประมวลผลในขนตอนประเมนคาความเหมาะสมนนเพมขนดงเชนขนตอนการก าเนดประชากร แตไมไดท าใหเวลารวมลดลงมากนกเนองจาก การประมวลผลในขนตอนประเมนคาความเหมาะสมนนถอวาใชเวลานอยมากเมอเทยบกบขนตอนอน เชน ขนตอนการก าเนดประชากร

Page 37: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

37

วเครำะหกำรทดลอง

เพอเพมความเขาใจเกยวกบความเรวทเพมขนบนหนวยประมวลผลกราฟก จะวเคราะหหลกการท างานและเวลาทใชไปในแตละขนตอนเปรยบเทยบระหวางหนวยประมวลผลกราฟกและหนวยประมวลผลกลาง

กำรวเครำะหจำกหลกกำรท ำงำน

จากผลการทดลองเหนไดวาจ านวนประชากรมผลกบความเรวในการประมวลผลของทงหนวยประมวลผลกลางและหนวยประมวลผลกราฟกทแตกตางกน

รปท 4-4 แสดงการจดแบงบลอกเขาไปประมวลผลในแกนประมวลผลของหนวยประมวลผลกราฟก

เพอใหเหนความเกยวของของความเรวทเพมขนเมอจ านวนประชากรเพมขนพจารณาการท างานของหนวยประมวลผลกราฟกซงมการจดเรยงการท างานของแตละบลอกทแบงไวกอนแลวเขาไปยงแกนประมวลผลแตละแกนและท าการประมวลผลพรอมๆกนเมอเปรยบเทยบการท างานของหนวยประมวลผลกลางทท างานของแตละขนตอนเปนล าดบ ดงนนเวลาทใชในการก าเนดประชากรแตละตวบนหนวยประมวลผลกลางจะแปรผนตอจ านวนประชากร ขณะทบนหนวยประมวลผลกราฟกนนจะไมแปรผนตรงตอจ านวนประชากรแตจะขนอยกบจ านวนแกนประมวลผลของอปกรณประมวลผลแตละรน รปท 4-4 การท างานของหนวยประมวลผล

Page 38: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

38

กราฟกจะจดเรยงบลอกเขาไปประมวลผลตามจ านวนแกนประมวลผลทม ดงนนหากวาแกนประมวลในอปกรณประมวลผลกราฟกมมากจะเกดการประมวลแบบขนานพรอมกนเปนการเพมความเรวในการประมวลผลใชเวลาไมแปรผนกบจ านวนบลอก

P1 P2 P3 P4 P5

Block 1

P1

P2

P3

P4

P5

...

Pn

P6 P7 P8 P9 P10

Block 2

... ... ... ... Pn

Block n

... … ... ... ...

Block n-1

CPUGPU

รปท 4-5 ตวอยางเปรยบเทยบงานของการก าเนดประชากร P1 ถง Pn ของขนตอนการก าเนดประชากรระหวางหนวยประมวลผลกราฟกและหนวยประมวลผลกลาง

เราสามารถอธบายโดยยกตวอยางงานในการก าเนดประชากร จากรปท 4-5 งานในการก าเนดประชากร P1 ถง P5 อยภายในบลอกเดยวกน และงาน P6 ถง P10 ซงอยในบลอกท 2 สามารถถกประมวลผลพรอมกนโดยใชแกนประมวลผลแยกกนเปนอสระ ในขณะทหนวยประมวลผลกลางงาน P2 สามารถใชหนวยประมวลผลเมอเสรจงาน P1 แลว จากรปท 4-5 เปนเพยงตวอยางเมอพจารณาวาหนวยประมวลผลกลางมแกนผลมวลผลเดยว ในขณะทในปจจบนหนวยประมวลผลกลางมจ านวนแกนประมวลผลเพมขน แตเชนกนจ านวนแกนหนวยประมวลผลกราฟกกเพมมากกวาและมากขนเรอยๆ

จากการอธบายเกยวกบการประมวลผลแบบขนานดวยแกนประมวลผลกราฟกซงมจ านวนมากกวาจ านวนแกนประมวลผลของหนวยประมวลผลกลาง เชน ในงานวจย จ านวนแกน

Page 39: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

39

ประมวลผลของ NVIDIA GeForce 540M นนมจ านวน 96 แกนประมวลผล ทความเรวนาฬกา 1344 MHz ดงนน จากการออกแบบเชนรปท 4-5 เมอมจ านวนประชากรเพมมากขนจะท าใหเวลาทถกใชไมแปรผนกบจ านวนประชากรเชนในหนวยประมวลผลกลาง แตแปรผนกบจ านวนแกนประมวลผล

Page 40: บทที่ 1prabhas//thesis/thitipan_msc_thesis.pdf · บทท 1 บทน ำ ควำมเป นมำและควำมส ำค ญของป ญหำ ในการแก

40

บทท 5

สรปผลกำรวจย และแนวทำงในกำรพฒนำตอ

สรปผลกำรวจย

งานวจยนน าเสนอการพฒนาวธขนตอนอบตการณรวมกนใหประมวลผลแบบขนานบนหนวยประมวลผลกราฟก และท าการเปรยบเทยบความเรวหนวยประมวลผลทงสองแบบจากผลการทดลองทงหมดเราไดทราบวาการท างานแบบขนานบนหนวยประมวลผลกราฟกของขนตอนวธอบตการณรวมกนนนท างานไดเรวกวาบนหนวยประมวลผลกลาง ซงจ านวนเทาของความเรวนนเพมขนเมอจ านวนประชากรทเพมขน เปนผลมาจากสถาปตยกรรมของหนวยประมวลผลกราฟกทท ามาเพอการประมวลผลแบบขนานและการประมวลผลปรมาณมาก อกทงการออกแบบการโปรแกรมของขนตอนวธอบตการณรวมกนเสยใหมเพอใหท างานแบบขนานบนหนวยประมวลผลกราฟก

แนวทำงในกำรพฒนำตอ

อยางทไดอธบายในการวเคราะหผลการทดลอง เวลาสวนใหญไดถกใชไปในขนตอนการก าเนดประชากร ซงถาเราสามารถลดเวลาในสวนนไดมากเทาไรกหมายถงสามารถเพมความเรวของขนตอนวธอบตการณรวมกนบนหนวยประมวลผลกราฟกใหยงมากขน การออกแบบการท างานแบบขนานโดยพจารณาการใชหนวยความจ าทน ามาใชไมวาจะเปนหนวยความจ าคงท หนวยความจ ารวมกนซงใหความเรวในการเขาถงทแตกตางกนมารวมดวยในการออกแบบเพมเตมอาจสามารถเพมความเรวมากยงขน