@ -50,6 +50,11 @@ int main(int argc, char *argv[]){
TTiming tt;
TTiming tt;
long time;
long time;
if(argc<2){
perror("Usage error\n");
exit(1);
}
size = strtol(argv[1], &endptr, 10);
size = strtol(argv[1], &endptr, 10);
if (*endptr){
if (*endptr){
@ -70,14 +75,14 @@ int main(int argc, char *argv[]){
cudaMalloc((void**)&dev_c,N*sizeof(int));
cudaMalloc((void**)&dev_c,N*sizeof(int));
set<<<20,192>>>(dev_a,dev_b,N); //wypełaianie tablic a i b 'losowymi' wartościami
set<<<16,192>>>(dev_a,dev_b,N); //wypełaianie tablic a i b 'losowymi' wartościami
cudaDeviceSynchronize(); //synchronizacja, bo inaczej pomar czasu nie ma sensu
cudaDeviceSynchronize(); //synchronizacja, bo inaczej pomar czasu nie ma sensu
//czas start
//czas start
tt.Begin();
tt.Begin();
//mnożenie a i b; c to wynik
//mnożenie a i b; c to wynik
multiply<<<10,384>>>(dev_a,dev_b,dev_c,size); //takie wartosći <<<10,384>>> bo jest dla nich najszybsze, ale jeszcze zrobie dokładne testy i ewentualnie je poprawie
multiply<<<16,192>>>(dev_a,dev_b,dev_c,size); //takie wartosći <<<10,384>>> bo jest dla nich najszybsze, ale jeszcze zrobie dokładne testy i ewentualnie je poprawie
//czas stop
//czas stop
cudaDeviceSynchronize();//synchronizacja, bo inaczej pomar czasu nie ma sensu
cudaDeviceSynchronize();//synchronizacja, bo inaczej pomar czasu nie ma sensu