42 líneas
857 B
C++
42 líneas
857 B
C++
|
|
#include"test_common.h"
|
||
|
|
#include<iostream>
|
||
|
|
#include<time.h>
|
||
|
|
|
||
|
|
#define NUM_SIZE 8
|
||
|
|
#define NUM_ITER 12
|
||
|
|
static size_t size[NUM_SIZE];
|
||
|
|
|
||
|
|
void setup(){
|
||
|
|
for(int i=0;i<NUM_SIZE;i++){
|
||
|
|
size[i] = 1<<(i+6); // start at 8 bytes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void valSet(int *A, int val, size_t size){
|
||
|
|
size_t len = size/sizeof(int);
|
||
|
|
for(int i=0;i<len;i++){
|
||
|
|
A[i] = val;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
int main(){
|
||
|
|
setup();
|
||
|
|
int *A, *Ad;
|
||
|
|
for(int i=0;i<NUM_SIZE;i++){
|
||
|
|
std::cout<<size[i]<<std::endl;
|
||
|
|
A = (int*)malloc(size[i]);
|
||
|
|
valSet(A, 1, size[i]);
|
||
|
|
hipMalloc(&Ad, size[i]);
|
||
|
|
std::cout<<"Malloc success at size: "<<size[i]<<std::endl;
|
||
|
|
clock_t start ,end;
|
||
|
|
start = clock();
|
||
|
|
for(int i=0;i<NUM_ITER;i++){
|
||
|
|
hipMemcpy(Ad, A, size[i], hipMemcpyHostToDevice);
|
||
|
|
}
|
||
|
|
hipDeviceSynchronize();
|
||
|
|
end = clock();
|
||
|
|
double uS = (double)(end - start)*1000/(NUM_ITER*CLOCKS_PER_SEC);
|
||
|
|
std::cout<<uS<<std::endl;
|
||
|
|
}
|
||
|
|
}
|