• Nem Talált Eredményt

KÍSÉRLETEK TORCH KÖRNYEZETBEN

Kombinált rendszer megtérülése

3. KÍSÉRLETEK TORCH KÖRNYEZETBEN

Torch környezetben többféle különböző processzor (CPU) és GPU alkalmazásával számítási kísérleteket végeztünk, hogy összehasonlítsuk a teljesítménybeli különbségeket és a skálázódást. Két nagyobb kísérletsorozat kerül bemutatásra a következőkben, amelyből az elsőnél négyzetes mátrixok szorzásának időszükségletét mérjük, még a második esetben rejtett rétegű neurális hálózatokat tanítunk be különböző számú rejtett neuron szám mellett. A kísérletekhez kétféle processzor (i5-4440S és i5-6600) illetve kétféle GPU (GTX 750 2GB és GTX 960 4GB) kerület felhasználásra. A kísérleteket Fedora 23, linux alapú operációs rendszer alatt végeztük.

3.1.Mátrix szorzás

Ebben a kísérletben négyzetes mátrixokat szoroztunk össze. A mátrixok mérete 50 és 10000 között változott, tartalmuk 0 és 1 közé eső véletlen számok voltak. Csak azt az időt mértük, ami az effektív számítás elvégzéshez volt szükséges. Az eredményeket a 3. ábra tartalmazza.

A diagram tanúsága szerint, ahogy várható volt, a mátrixok méretének növekedésével nőtt a számítási idő. Az i5-6600-as CPU még kisebb méret mellett fel tudta venni a versenyt a grafikus vezérlőkkel, sőt a korábbi 7. generáció tagját még meg is előzte, de nagy méretek esetén egyértelmű a grafikus vezérlők előnye. A legnagyobb 10000 x 10000-es mátrix méret esetén 8-szor annyi időre volt szüksége a Skylake architektúrás CPU-nak a művelet elvégzéshez, mint a nem túl régi, Maxwell architektúrájú Nvidia GPU-nak. Szépen látszik a fejlődés a grafikus kártyák között is, hiszen a 2 generáció különbség körülbelül 2-szeres időt jelent. Itt megjegyezném a két kártya CUDA magjainak a száma között is kétszeres szorzó figyelhető meg. A GTX 750 512 CUDA maggal rendelkezik, még a GTX 960-as 1024-el dicsekedhet [19].

3. ábra Mátrixok összeszorzásához szükséges idő a méret függvényében, a különféle hardverek esetén

120

Kiemelném a Torch környezet adta kényelmi szolgáltatásokat, amit a grafikus kártya használat során tapasztaltunk. A következő, 4. ábra mutatja a CPU-ra és a GPU-ra megírt mátrix szorzást végző függvények forráskódját. Egyfelől a mátrixok létrehozása során van különbség a két kód között, másfelől a pontos időmérésekhez szükséges szinkronizációs függvények meghívása jelent másik különbséget a forráskódok között.

4. ábra Mátrix szorzás elvégzéshez írt rutinok Torch nyelven CPU-ra (bal) és GPU-ra (jobb) 3.2.Neurális hálózatok tanítása

A másik kísérlet, amit a Torch környezeten belül végeztünk az több különböző méretű, egy rejtett réteggel rendelkező neurális hálózatok betanítása volt. A szükséges tanító mintakészleteket, mesterségesen állítottuk elő a következő leképezés segítségével.

z

Tanító kritériumként, átlagos négyzetes hibát használtunk.

A hálózatok tanítása sztochasztikus gradiens módszer (SGD) segítségével történt. Minden tanítás, viszonylag rövid 100 iterációs ciklusig történt.

Az effektív tanítási időket mérve, különféle hardverelemeket használva, az elért eredményeket az 5. és 6. ábrák foglalják össze. Kis és közepes hálózatméret esetén (10 - 10000 rejtett neuronszám) hálózatméret estén a CPU bizonyult gyorsabbnak, de ettől nagyobb méret esetén már a grafikus vezérlők gyorsítottak a tanítás idején. Maximálisan 40%

körüli időnyereséget lehetet elérni a grafikus vezérlő alkalmazásával. Itt jegyezném meg, hogy a hálózat struktúrája igen egyszerű volt, hiszen egy bemenettel és egy kimenettel és egy

function gpu_matrix_mult(act_size)

121

rejtett réteggel rendelkeztek a hálózatok. Több réteg esetén valószínűleg jobban kijöhet a mátrix szorzásnál tapasztalt gyorsulás.

5. ábra Kisebb méretű neurális hálózatok tanításhoz szükséges idő a rejtett neuronok számának függvényében, különféle hardverek esetén

6. ábra Nagyobb méretű neurális hálózatok tanításhoz szükséges idő a rejtett neuronok számának függvényében, különféle hardverek esetén

7. ábra Neurális hálózat felépítése Torch-ban

criterion = nn.MSECriterion() if use_GPU then

criterion:cuda() end

-- set up SGD trainer

trainer = nn.StochasticGradient(mlp, criterion)

trainer.learningRate = 0.01 trainer.shuffleIndices = false mlp_params = mlp:getParameters() mlp_params:uniform(-0.05, 0.05) mlp:zeroGradParameters() --make neural network

mlp = nn.Sequential();

num_inputs = 1; num_outputs = 1;

mlp:add(nn.Linear(num_inputs, num_hiddens)) mlp:add(nn.Sigmoid())

mlp:add(nn.Linear(num_hiddens, num_outputs)) if use_GPU then

mlp:cuda() end

122

Ahogy a mátrix szorzás esetén tapasztalható volt, minimális energia befektetésével, könnyen átültethető a programkód CPU-ról GPU-ra, illetve a hálózat létrehozási is csupán pár sor (7. ábra).

ÖSSZEFOGLALÁS

Két nagy népszerűségnek örvendő függvénykönyvtárat vizsgáltunk meg főbb jellemzőik figyelembevételével. A Julia programozási nyelv esetében irodalmi forrásokra hivatkozva mutattuk be annak teljesítményét. A második, részletesebben megvizsgált programcsomag esetében két vizsgálatot végeztünk többféle hardverelem használata mellett. Arra jutottunk, hogy összetettebb számítási feladat esetén, javasolt a GPU használata, hiszen programozás szempontjából nem jelent nagy munkabefektetést, annak használata, de ha fontos az időparaméter, akkor tetemes időnyereséget lehet elérni a GPU, mint a számolóegység használatával.

FELHASZNÁLT IRODALOM

[1] SCHAPIRE, R.: Theoretical Machine Learning, COS 511, Lecture notes, 2008.

[2] RUSSELL, S., NORVIG, P.: Mesterséges Intelligencia, Modern megközelítésben, Panem Könyvkiadó, 2005., ISBN 963 545 411 2.

[3] RIFKIN, R.: Multiclass Classification, 9.520 Class 06, 2008.

[4] ZISSERMAN, A.: Machine Learning, Hilary Term, University of Oxford, 2015

[5] HERTZMANN, A., Fleet, D.: Machine Learning and Data Mining, Lecture Notes, CSC 411/D11, Computer Science Department, University of Toronto, 2012.

[6] CUNNINGHAM, J. P., GHAHRAMANI, Z.: Linear Dimension Reduction: Survey, Insights and Generalizations, Journal of Machine Learning Research 16, pp. 2859-2900, 2015.

[7] ORMÁNDI, R.: Gépi tanulás a gyakorlatban, Bevezetés, Szegedi Egyetem, 2013 [8] SZEPESVÁRI CS.: Gépi tanulás – Rövid bevezetésa, MTA SZTAKI, 2005.

[9] Julia, http://julialang.org

[10] BEZANSON, J., EDELMAN, A., KARPINSKI, S., SHAH, V. B.: Julia: A fresh approach to numerical computing, http://arxiv.org/abs/1411.1607, 2014

[11] Torch: a scientific computing framework for LuaJIT, http://torch.ch

[12] COLLOBERT, R., KAVUKCUOGLU, K., FARABET, C.: Torch7: A Matlab-like Environment for Machine Learning, BigLearn, NIPS Workshop, 2011.

[13] Caffe: Deep Learning Framework, http://caffe.berkeleyvision.org

[14] YANGQING, J., SHELHAMER, E., DONAHUE, J., KARAYEV, S., LONG, J., GIRSHICK, R., GUADARRAMA, S., DARRELL, T.: Caffe: Convolutional Architecture for Fast Feature Embedding, arXiv preprint arXiv:1408.5093, 2014.

[15] THEANO DEVELOPMENT TEAM: Theano: A Python framework for fast computation of mathematical expressions, arXiv e-prints abs/1605.02688, 2016.

[16] DEAN, J., MONGA, R. ET AL.: TensorFlow: Large-scale machine learning on heterogeneous systems, Google Research, 2015

[17] JUNO: A flexible IDE for the 21th century, http://junolab.org

[18] ZeroBrane Studio: Lightweight IDE for your Lua needs, https://studio.zerobrane.com [19] Geforce.com, http://www.geforce.com/hardware/desktop-gpus

123

SZEMCSÉS ANYAGOK SÚRLÓDÁSA: MEZŐGAZDASÁGI ALKALMAZÁSOK

FRICTION OF GRANULATED MATERIAL: APPLICATIONS IN AGRICULTURE

GINDERT-KELE Ágnes1, HAGYMÁSSY Zoltán2

1egyetemi docens, battane@eng.unideb.hu,

1Debreceni Egyetem, MK Gépészmérnöki Tanszék, 4028 Debrecen, Ótemő u. 2-4

2egyetemi docens, hagymassy@agr.unideb.hu

2AGTC, MÉK Agrár-Műszaki Tanszék, 4032 Debrecen, Böszörményi út 138

Kivonat: Az ömlesztett, szemcsés anyagok viselkedése sok, a termelésben jelentős témakörben, de akár a földtanban is érdekes lehet: a földcsuszamlások modellezésétől kezdve a mezőgazdaságban használatos silók vagy műtrágyaszórók tervezéséhez is adhatnak hasznos támpontokat. A műtrágyaszemcsék súrlódási tulajdonságaival kapcsolatos korábbi kísérleti tapasztalatainkat tekintjük át az újonnan bevezetett modellezési technikák fényében. Úgy tűnik, hogy a véges elemek módszere (DEM) segítségével végrehajtható modell-számítások egyre elterjedtebbé és megbízhatóbbá válnak.

Kulcsszavak: műtrágya, súrlódás, számítógépes modellezés, diszkrét elemek módszere (DEM)

Abstract: The knowledge of the behaviour of granulated, bulk matter might be interesting in industrial and agricultural production, and even in geography: e.g. they can help to understand landslides or could provide useful hints for the design of silos or spinning disc spreaders used in agriculture. We reconsider our earlier experimental experience concerning the friction properties of fertilizer particles in the light of the new modelling techniques. It seems that the model calculations using the DEM (Discrete Elements Method) have become more widespread and more reliable.

Keywords: fertiliser, friction, computer modelling, discrete element method (DEM)

1. BEVEZETÉS

Mintegy 143 millió tonna műtrágyát juttatnak ki évente a világban tápanyag utánpótlás és a remélt termésnövelés céljából. A környezetvédelem már felismerte pl. a foszfátok károsító hatását és a Balaton javuló vízminősége többek közt a vízgyűjtő területen a csökkentett mennyiségű műtrágya alkalmazásának is köszönhető. Ugyanakkor a műtrágya gazdaságilag fontos vegyipari termék, amelynek jó minőségű gyártása és precíziós kijuttatása az alacsonyabb környezeti terhelés előfeltétele.