MCPcopy Create free account
hub / github.com/JeanLucPons/VanitySearch / Search

Method Search

Vanity.cpp:1641–1770  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1639// ----------------------------------------------------------------------------
1640
1641void VanitySearch::Search(int nbThread,std::vector<int> gpuId,std::vector<int> gridSize) {
1642
1643 double t0;
1644 double t1;
1645 endOfSearch = false;
1646 nbCPUThread = nbThread;
1647 nbGPUThread = (useGpu?(int)gpuId.size():0);
1648 nbFoundKey = 0;
1649
1650 memset(counters,0,sizeof(counters));
1651
1652 printf("Number of CPU thread: %d\n", nbCPUThread);
1653
1654 TH_PARAM *params = (TH_PARAM *)malloc((nbCPUThread + nbGPUThread) * sizeof(TH_PARAM));
1655 memset(params,0,(nbCPUThread + nbGPUThread) * sizeof(TH_PARAM));
1656
1657 // Launch CPU threads
1658 for (int i = 0; i < nbCPUThread; i++) {
1659 params[i].obj = this;
1660 params[i].threadId = i;
1661 params[i].isRunning = true;
1662
1663#ifdef WIN64
1664 DWORD thread_id;
1665 CreateThread(NULL, 0, _FindKey, (void*)(params+i), 0, &thread_id);
1666 ghMutex = CreateMutex(NULL, FALSE, NULL);
1667#else
1668 pthread_t thread_id;
1669 pthread_create(&thread_id, NULL, &_FindKey, (void*)(params+i));
1670 ghMutex = PTHREAD_MUTEX_INITIALIZER;
1671#endif
1672 }
1673
1674 // Launch GPU threads
1675 for (int i = 0; i < nbGPUThread; i++) {
1676 params[nbCPUThread+i].obj = this;
1677 params[nbCPUThread+i].threadId = 0x80L+i;
1678 params[nbCPUThread+i].isRunning = true;
1679 params[nbCPUThread+i].gpuId = gpuId[i];
1680 params[nbCPUThread+i].gridSizeX = gridSize[2*i];
1681 params[nbCPUThread+i].gridSizeY = gridSize[2*i+1];
1682#ifdef WIN64
1683 DWORD thread_id;
1684 CreateThread(NULL, 0, _FindKeyGPU, (void*)(params+(nbCPUThread+i)), 0, &thread_id);
1685#else
1686 pthread_t thread_id;
1687 pthread_create(&thread_id, NULL, &_FindKeyGPU, (void*)(params+(nbCPUThread+i)));
1688#endif
1689 }
1690
1691#ifndef WIN64
1692 setvbuf(stdout, NULL, _IONBF, 0);
1693#endif
1694
1695 uint64_t lastCount = 0;
1696 uint64_t gpuCount = 0;
1697 uint64_t lastGPUCount = 0;
1698

Callers 1

mainFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected