⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 用于GPU通用计算的编程语言BrookGPU 0.4
💻 CPP
字号:
// main.cpp#include "timing.hpp"#include <iostream>#include <stdlib.h>#include <iostream>#include <string>void cpuIterate( int, int, int& );void gpuIterate( int, int, int* );void moutIterate( int, int, int* );int main( int argc, char** argv ){  SetupMillisTimer();  int time;  bool mout = false;  if( argc < 4 )  {    std::cerr << "bad args" << std::endl;    return 1;  }  int size = atoi( argv[2] );  int iterations = atoi( argv[3] );  if( strcmp( argv[1], "cpu" ) == 0 )  {    cpuIterate( size, iterations, time );  }  else if( strcmp( argv[1], "mout" ) == 0 )  {    moutIterate( size, iterations, &time );	mout = true;  }  else  {    gpuIterate( size, iterations, &time );  }  double totalOps;  double onewayBandwidth = 0;  double twowayBandwidth = 0;  if( mout )  {	  double n = (double)size;	  // 26 ops per spring	  double springOps = 2*n*(n-1)*26;	  // 23 ops per step	  double stepOps = n*n*23;	  // 9 misc ops	  double miscOps = n*n*9;	  totalOps = (springOps + stepOps + miscOps) * iterations;	  onewayBandwidth = 6*4*4*( n * n * iterations ) / (double)time;	  twowayBandwidth = 2*5*4*4*( n * n * iterations ) / (double)time;  }  else  {	double n = (double)size;	double stepOps = ((n*n - 2)*21+1);	double windOps = (4*(n-1)*(n-1)*23);	double springOps = (2*n*(n-1) + 2*(n-1)*(n-1) + 2*n*(n-2))*34;	totalOps = ( stepOps + windOps + springOps ) * iterations;  }  double megaflops = totalOps / (double)time;  std::cout << iterations << "\t";  std::cout << time << "\t";/*  if( mout )  {	  std::cout << "1way: " << onewayBandwidth << "\t";	  std::cout << "2way: " << twowayBandwidth << "\t";  }*/  std::cout << megaflops << std::endl;  CleanupMillisTimer();  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -