Exemplo n.º 1
0
int main(int argc, char** argv) {
	cuInit(0);

	DevicePtr device;
	CUresult result = CreateCuDevice(0, &device);

	ContextPtr context;
	result = CreateCuContext(device, 0, &context);

	scanEngine_t engine;
	scanStatus_t status = scanCreateEngine(
		"../../src/mgpuscan/globalscan.cubin", &engine);

	int count = 1<< 19;
	std::vector<int> vals(count);

	std::tr1::uniform_int<int> r(0, 15);
	for(int i(0); i < count; ++i)
		vals[i] = r(mt19937);

	DeviceMemPtr deviceMem;
	result = context->MemAlloc(vals, &deviceMem);

	uint scanTotal;
	status = scanArray(engine, deviceMem->Handle(), count, &scanTotal, false);
	std::vector<int> deviceScan;
	deviceMem->ToHost(deviceScan);

	std::vector<int> hostScan(count);
	for(int i(1); i < count; ++i) {
		hostScan[i] = hostScan[i - 1] + vals[i - 1];
		
	}

	scanDestroyEngine(engine);

	bool success = hostScan == deviceScan;
	if(success) printf("Global scan success.\n");
	else printf("Global scan failure.\n");

	return 0;
}
Exemplo n.º 2
0
int main(int argc, char *argv[]) {
  unsigned char *router6 = NULL;        // roteador da rota parametrizada
  unsigned char *multicast6,    // endereco do grupo multicast de destino
   *routers[2];
  int rawmode = 0;              // informa se o "raw mode" foi ativado ou nao
  char *interface;              // nome da interface de analise


  // verifica se foi pedida as instrucoes de uso
  if (argc < 2 || strncmp(argv[1], "-h", 2) == 0)
    help(argv[0]);

  // verifica se foi selecionado para funcionar em "raw mode"
  if (strcmp(argv[1], "-r") == 0) {
    thc_ipv6_rawmode(1);
    rawmode = 1;
    argv++;
    argc--;
  }
  // nome da interface de captura
  interface = argv[1];

  // pode ser informado um grupo multicast para se limitar o escopo do scan
  if (argv[2] != NULL && argc > 2)
    multicast6 = thc_resolve6(argv[2]);
  else                          // caso nao tenha sido informado eh utilizado o endereco de multicast[broadcast] padrao
    multicast6 = thc_resolve6("ff02::1");

  // caso seja passado alguma rota , setar os roteadores 
  if (argv[3] != NULL && argc > 3) {
    router6 = thc_resolve6(argv[3]);
    routers[0] = multicast6;
    routers[1] = NULL;
    multicast6 = router6;       // switch destination and router
  }

  hostScan(rawmode, interface, multicast6, router6, routers);

  return 0;
}