PetrKralTul / Projekt

0 stars 1 forks source link

Aramdillo memory test #1

Open jbrezmorf opened 7 years ago

jbrezmorf commented 7 years ago

Jak se Armadillo a naše implementace chovají pro práci s velkým polem malých vektorů s pevnou velikostí?

Porovname tri varianty reprezentace velkeho pole melych vektoru:

  1. std::vector<Vector<double, 3> >
  2. std::vector<arma::vec3 > ( pametove neefektivni) vec3 == Mat::fixed<3,1>
  3. double [3*n] + pouziti konstruktoru: Mat::fixed<n_rows, n_cols>(const ptr_aux_mem) napr.
    class raw_arma {
     double *ptr;
     raw_arma(int size) {
        ptr = new [3*size];
     }  
     inline arma::vec3 get(int i) {
        return Mat<double>::fixed<3,1>(ptr + 3*i);
     }

Testovat: A. vygenerovat nahodny obsah vektoru v poli a pak merit vypocet jejich souctu. Pro N=1e6. B. po slozkach pocitat skalarni souciny:

vector<Vector> a,b; 
vector<double> c;
... // naplnit a,b
for i=0..N
    c[i] = dot( a[i], b[i] )
jbrezmorf commented 7 years ago
jbrezmorf commented 7 years ago
  1. Preklad pomoci g++ z prikazove radky s parameterm -S.
  2. zkusit nejaky profiler, napr. ZOOM: www.rotateright.com. Pro porovnani kodu.