矩阵乘法
#include <iostream>
#include <sys/time.h>
using namespace std;
float a[1000][2000], b[2000][1500], c[1000][1500] = {
0.0};
int main() {
for(int i = 0; i < 1000; ++i) {
for(int j = 0; j < 2000; ++j) {
a[i][j] = 1.1 + i / 1000.0;
}
}
for(int i = 0; i < 2000; ++i) {
for(int j = 0; j < 1500; ++j) {
a[i][j] = 1.11 + j / 1000.0;
}
}
struct timeval start, end;
gettimeofday(&start, NULL);
for(int i = 0; i < 1000; ++i) {
for(int j = 0; j < 2000; ++j) {
for(int k = 0; k < 1500; ++k) {
c[i][k] += a[i][j]*b[j][k];
}
}
}
gettimeofday(&end, NULL);
float cost_time = (end.tv_usec-start.tv_usec)/1000000.0 + end.tv_sec-start.tv_sec;
cout << cost_time << endl;
return 0;
}
- opencl实现
- 0.303606 seconds
- Host代码
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include