seminar-parallel processing
TRANSCRIPT
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☻