Seminar-Parallel Processing

Post on 25-Jan-2017

47 views 1 download

Transcript of Seminar-Parallel Processing

GPU strategiesfor evolutionary machine

learning

Master :Dr. Ghaderi

Mohammad Amin Amjadi

Spring 2016

2

مقاالت

1. Large-scale experimental evaluation of GPU strategies for evolutionary machine learning

María A. Franco, Jaume Bacardit2016 Elsevier B.V. All rights reserved

2. Improving the scalability of rule-basedevolutionary learning

Jaume Bacardit, Edmund K. Burke, Natalio Krasnogor

2009

3

مطالب

1.Evolutionary Algorithm2.Machine Learning3.Problem4.Goal5.BioHEL Algorithm6.GPUs and CUDA7. CUDA-based fitness computation for

BioHEL8. Coarse-grained parallel approach9. fine-grained parallelization10. Experimental design11.Conclusions12.Recommendation

4

Evolutionary Algorithm

بصورت تصادفی یکسری از حاالت را بررسی می نمائیم•فرآیند انتخاب تصادفی و بررسی نتیجه را چندین بار تکرار می نمائیم•از عملگرهای همبری، جهش، انتخاب و ... در هر مرحله استفاده •

می نمائیم

برخی از الگوریتم ها، پیچیده و زمان بر •هستند

نمی خواهیم تمام حاالت را بررسی نمائیم•فقط می خواهیم یک تقریب بزنیم•

= reward = fitnessreward cost

5

Machine Learning

6

Problem

: زمان یادگیری زیاد می شود اگر بزرگ باشدdatasetالف(مدل یادگیری پیچیده باشد )همانند یادگیری با نظارت و ...(ب(

امروزه یکی از شایع ترین روش ها استفاده ازgpu است، خصوصا برای بهبود مقیاس پذیری الگوریتم های داده-کاوی

بدلیل طبیعت موازی الگوریتم های تکاملی، ازgpuبرای بهبود بهره وری استفاده شده است

7

Goal

استفاده از سیستم یادگیری تکاملیBioHEL که بطور خاص برای داده-کاوی dataset های بزرگ طراحیشده است

سیستمBioHELبا سایر الگوریتم های یادگیری ماشین، رقابت می کند پیشنهاد می شود از یکgpu مناسب BioHEL( nvidia که از cudaاستفاده شود ،)پشتیبانی می نماید برابر داشته است60در آزمایشات و مسائل بزرگ، تسریع بیش از با ترکیب مکانیزهای افزایش بهره وری، در حال حاضرBioHEL برابر تسریع داشته است750 بیش از

8

BioHEL

BioHELیک سیستم یادگیری تکاملی، با هدف مدیریت مجموعه داده های مقیاس بزرگ، می باشد ( این سیستم، پس از روش یادگیری قانونrule تکرارشونده، مجموعه قانون های سلسله مراتبی را تولید )

می کند در این روش برای یادگیری هر قانون، قانون هایی که پی در پی به دست آوردیم، از یک الگوریتم ژنتیکی

استاندارد استفاده می کند

9

BioHEL

Procedure BioHEL general workflowInput : TrainingSetRuleSet = ∅stop = falseDo

BestRule = nullFor repetition=1 to NumRepetitionsRuleLearningCandidateRule = RunGA)TrainingSet(If CandidateRule is better than BestRuleBestRule = CandidateRuleEndIfEndForMatched = Examples from TrainingSet matched by BestRuleIf class of BestRule is the majority class in MatchedRemove Matched from TrainingSetAdd BestRule to RuleSetElsestop = trueEndIf

While stop is falseOutput : RuleSet

10

BioHEL

Fitness = TL · W + ELTL = 0.25 : theory length : پیچیدگی راه حلEL : exceptions length : دقت راه حلW = 0.9 : weight : TL وEL تنظیم رابطه بین

Rیک قانون : NAتعداد ویژگی های دامنه :

Size)Ri( طول فاصله مرتبط با ویژگی : i ،ام RSize)Di( طول ویژگی : iام، دامنه

11

BioHEL

EL)R( = 2 − ACC)R( − COV)R(

12

BioHEL

BioHEL از ALKR)برای رمزکردن قانون در الگوریتم ژنتیکی استفاده می کند )جمعیت در الگوریتم ژنتیکی

numAtt : تعداد ویژگیwhichAtt : ویژگی هاpredicates : مقادیر ویژگی هاoffsetPred : مکان حافظه هر ویژگیclass : کالس قانون

13

BioHEL

BioHEL برای کاهش زمان اجرا و افزایش بهره وری، از مکانیزم پنجره ای که ILAS نامیده می شود، استفاده می کند

Training setبه چندین قسمت تقسیم می شود، و در هرمرحله الگوریتم ژنتیکی قسمتی از آن لحاظ می شود یک قانون بدین صورت نمایش داده می شود :

14

GPUs and CUDA

15

GPUs and CUDA

در زیاد حافظ�ه هزینه CUDAتخص�یص آ�ن، انتقال و زیادی دارد

برای حافظ�ه از که CUDAاس�تفاده اس�ت بحران�ی می تواند باعث افت کارایی شود

Coalescenceبسیار مهم است ، block های پشت سرهم در یک Threadبه زمانی برسیم که

به مکان های پشت سرهم حافظه دسترسی داشته باشند عدمCoalescence اجرای زمان افزایش باع��ث

Kernelمی شود افزایش باع�ث می توان�د حافظ�ه از مناس�ب اس�تفاده

کارایی شود

Host Device

1. Host to Device

2. Launch Kernel

3. Device to Host

16

types of memory in CUDA

Device mem

Texture mem

Shared mem مشترک استBlockهای یک Threadبین

Constant mem قابل نوشتن استHostفقط توسط Local

thread mem Threadمخصوص هر

17

CUDA-based fitness computation for BioHEL

( برای محاسبه شایستگیFitnessهر قانون، سه معیار شمارش می شود: تعداد نمونه هایی که ) می شوندmatch قانون conditionبا 1. می شوندmatch قانون classبا 2. می شوندmatch قانون condition و classهمزمان با 3.

هدف از تابعCUDA fitness:انجام موازی فرآیند تطبیق و محاسبه سه معیار است، که در دو گام انجام می شود ،ها و همه ی نمونه ها classifierمحاسبه تطبیق بین همه ی 1.محاسبه سه معیار برای هر قانون، بصورت موازی2.

محاسبهfitness:به دو روش در این مقاله عنوان می شود : روش اصلی مقالهcoarse-grained parallelisationروش موازی درشت-دانه : 1. : روش پیشنهادیfine-grained parallelisationروش موازی ریز-دانه : 2.

18

CUDA-based fitness computation for BioHEL

coarse-grained parallelisation

دوبعدی است

امj ام و قانون iتطبیق نمونه

fine-grained parallelisation

سه بع�دی است : به تع�داد ویژگی های مسئله

امj ام و قانون i ام از نمونه kتطبیق ویژگی

19

Coarse-grained parallel approach

Kernel 1تطبیق همه قانون ها وهمه نمونه ها

:Threadهر . تطبیق یک قانون و یک نمونه1 ،condition. محاسبه سه معیار)تطبیق 2

class)و هردو shareMem. ذخیره نتایج در 3

Kernel 2شمارش تع�داد تطبیق و عدم تطبیق یک

قانون

20

Kernel 1

21

Kernel 2

22

fine-grained parallelisation

Kernel 1 محاسبه تطبیق :Conditionبرای ویژگی های گسسته Kernel 2 محاسبه تطبیق :Conditionبرای ویژگی های پیوسته Kernel 3محاسبه تطبیق :classKernel 4 محاسبه :AND تطبیق Condition و تطبیق Class

کاهش تعداد نتایج در هر تکرار

23

Kernel 1,2

24

Experimental design

Name نام :DatasetT سایز مجموعه :Training#Attتعداد ویژگی ها :#Dis تعداد ویژگی های :

گسسته#Con تعداد ویژگی های :

پیوسته#Cl تعداد :Classها

25

Experimental design

Intel)R( Core)TM( i7 CPU8 cores

3.07 GHz12 GB of RAM

Tesla C2070 6 GB of internal memory448 CUDA cores

14 multiprocessors x 32 CUDA Cores/MP

26

Experimental design

the serial experiments are run in Intel Xeon E5472 processors at 3.0 GHz

27

Experimental design

Pentium 43.6 GHz

hyper-threading2 GB of RAM

Tesla C1060 4 GB of global memory

30 multiprocessors

28

Synthetic datasets Result

Run-time of the two GPU strategies on synthetic problems

#Windows=1 and population size=500

Log scale is used for both axis

disc = discrete attributesreal = continuous attributes

29

Synthetic datasets Result

Run-time per instance of the two GPU strategies on synthetic problems

#Attributes=300, #Windows=1 and population size=500

Log scale in x axis

disc = discrete attributesreal = continuous attributes

30

Synthetic datasets Result

Run-time per attribute of the two GPU strategies on synthetic problems

#Instances=1 M, #Windows=1 and population size=500

Log scale in x axis

disc = discrete attributesreal = continuous attributes

31

Synthetic datasets Result

Run-time per individual of the two GPU strategies on synthetic problems

#Instances=1 M, #Attributes = 300 and #Windows=1

disc = discrete attributesreal = continuous attributes

32

Synthetic datasets Result

Run-time per individual of the two GPU strategies on synthetic problems

#Instances=1 M, #Attributes = 300 and #Windows=1

disc = discrete attributesreal = continuous attributes

33

Synthetic datasets Result

Execution time in seconds of the evaluation process of the serial version and both CUDA fitness functions with windowing disabled

34

Experiments on real-world datasets

Speedup against the serial algorithm without using windowing of the different parallelisation approaches ran on different architectures

35

Experiments on real-world datasets

Independent evaluation process, coarse-grained strategy on the C1060 GPU Card

Problems:black = continuousred = mixedblue = discrete

)For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article(

36

Experiments on real-world datasets

Independent evaluation process, coarse-grained strategy on the C2070 GPU Card

Problems:black = continuousred = mixedblue = discrete

)For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article(

37

Experiments on real-world datasets

Independent evaluation process, fine-grained strategy on the C2070 GPU Card

Problems:black = continuousred = mixedblue = discrete

)For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article(

38

Conclusions

پیاده سازی شدgpuدو استراتژی یادگیری ماشین تکاملی برای 1.

روش درشت-دانه، محافظه کارانه تر بوده، و روش ریز-دانه موازی سازی بیشتری داشته2.

.3Kernel ریز-دانه سریع تر بوده، در ،Dataset ویژگی و در سایر موارد، درشت- دانه سریع تر بوده15 الی 10 با

نتایج بدتری داشته استgpuدر مسائل کوچک، استفاده از 4.

ها نتایج مناسبی خواهد داشتThreadتعادل بین موازی سازی و حجم کار 5.

اینکه درشت-دانه ها نتایج بهتری داشته اند، متضاد با درک عمومی موازی سازی بیشتر و تسریع است6.

نمودTuneبا دقت و بررسی می توان بدرستی پارامترها را 7.

.8Gpu های جدید امکانات پیشرفته سخت افزاری دارند، که امکان ارتباطات سریع بین Wrap ها را فراهم های ریز-دانه سریع تر شوندKernel( که می توانند باعث شوند shuffle و wrap،voteمی کنند)مثل

آنرا یکی نموده! )برای جلوگیری از مشکل Kernel 2 و Kernel 1راه ساده برای بهبود ریز-دانه این است که 9.(Kernelهماهنگی دو

39

Recommendation

انتخاب مناسب پارامترها1.

در مورد الگوریتم ژنتیکی هیچ بحثی نشده است، که می توان برای بهبود آن تالش نمود2.

توسعه یک تابع تصمیم گیرنده، که در صورت امکان بسته به شرایط مناسب ترین الگوریتم و پارامترها را 3.لحاظ نماید

برای یادگیری ماشین و الگوریتم های تکاملیgpu و بهینه سازی co-processorاستفاده از 4.

40

Question ?

☻Thanks☻