The ccminer console output looks a bit more like cudaMiner now. 64 bit Windows compilation should no longer take "forever" but only "annoyingly long"
This commit is contained in:
parent
be5ba30131
commit
ac40fac038
@ -465,6 +465,7 @@ copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)"</Command>
|
|||||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
||||||
<MaxRegCount Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">128</MaxRegCount>
|
<MaxRegCount Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">128</MaxRegCount>
|
||||||
|
<MaxRegCount Condition="'$(Configuration)|$(Platform)'=='Release|x64'">128</MaxRegCount>
|
||||||
</CudaCompile>
|
</CudaCompile>
|
||||||
<CudaCompile Include="x11\cuda_x11_simd512.cu">
|
<CudaCompile Include="x11\cuda_x11_simd512.cu">
|
||||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">-Xptxas "-abi=no -v" %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
14
cpu-miner.c
14
cpu-miner.c
@ -55,6 +55,7 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
int cuda_num_devices();
|
int cuda_num_devices();
|
||||||
|
void cuda_devicenames();
|
||||||
int cuda_finddevice(char *name);
|
int cuda_finddevice(char *name);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
@ -170,6 +171,7 @@ bool opt_trust_pool = false;
|
|||||||
uint16_t opt_vote = 9999;
|
uint16_t opt_vote = 9999;
|
||||||
static int num_processors;
|
static int num_processors;
|
||||||
int device_map[8] = {0,1,2,3,4,5,6,7}; // CB
|
int device_map[8] = {0,1,2,3,4,5,6,7}; // CB
|
||||||
|
char *device_name[8]; // CB
|
||||||
static char *rpc_url;
|
static char *rpc_url;
|
||||||
static char *rpc_userpass;
|
static char *rpc_userpass;
|
||||||
static char *rpc_user, *rpc_pass;
|
static char *rpc_user, *rpc_pass;
|
||||||
@ -780,6 +782,7 @@ static void *miner_thread(void *userdata)
|
|||||||
unsigned char *scratchbuf = NULL;
|
unsigned char *scratchbuf = NULL;
|
||||||
char s[16];
|
char s[16];
|
||||||
int i;
|
int i;
|
||||||
|
static int rounds = 0;
|
||||||
|
|
||||||
memset(&work, 0, sizeof(work)); // prevent work from being used uninitialized
|
memset(&work, 0, sizeof(work)); // prevent work from being used uninitialized
|
||||||
|
|
||||||
@ -914,6 +917,9 @@ static void *miner_thread(void *userdata)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (opt_benchmark)
|
||||||
|
if (++rounds == 1) exit(0);
|
||||||
|
|
||||||
/* record scanhash elapsed time */
|
/* record scanhash elapsed time */
|
||||||
gettimeofday(&tv_end, NULL);
|
gettimeofday(&tv_end, NULL);
|
||||||
timeval_subtract(&diff, &tv_end, &tv_start);
|
timeval_subtract(&diff, &tv_end, &tv_start);
|
||||||
@ -926,8 +932,10 @@ static void *miner_thread(void *userdata)
|
|||||||
if (!opt_quiet) {
|
if (!opt_quiet) {
|
||||||
sprintf(s, thr_hashrates[thr_id] >= 1e6 ? "%.0f" : "%.2f",
|
sprintf(s, thr_hashrates[thr_id] >= 1e6 ? "%.0f" : "%.2f",
|
||||||
1e-3 * thr_hashrates[thr_id]);
|
1e-3 * thr_hashrates[thr_id]);
|
||||||
applog(LOG_INFO, "thread %d: %lu hashes, %s khash/s",
|
applog(LOG_INFO, "GPU #%d: %s, %s khash/s",
|
||||||
thr_id, hashes_done, s);
|
device_map[thr_id], device_name[thr_id], s);
|
||||||
|
// applog(LOG_INFO, "thread %d: %lu hashes, %s khash/s",
|
||||||
|
// thr_id, hashes_done, s);
|
||||||
}
|
}
|
||||||
if (opt_benchmark && thr_id == opt_n_threads - 1) {
|
if (opt_benchmark && thr_id == opt_n_threads - 1) {
|
||||||
double hashrate = 0.;
|
double hashrate = 0.;
|
||||||
@ -1491,6 +1499,8 @@ int main(int argc, char *argv[])
|
|||||||
/* parse command line */
|
/* parse command line */
|
||||||
parse_cmdline(argc, argv);
|
parse_cmdline(argc, argv);
|
||||||
|
|
||||||
|
cuda_devicenames();
|
||||||
|
|
||||||
if (!opt_benchmark && !rpc_url) {
|
if (!opt_benchmark && !rpc_url) {
|
||||||
fprintf(stderr, "%s: no URL supplied\n", argv[0]);
|
fprintf(stderr, "%s: no URL supplied\n", argv[0]);
|
||||||
show_usage_and_exit(1);
|
show_usage_and_exit(1);
|
||||||
|
@ -164,6 +164,30 @@ extern "C" int cuda_num_devices()
|
|||||||
return GPU_N;
|
return GPU_N;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gerätenamen holen
|
||||||
|
extern char *device_name[8];
|
||||||
|
extern int device_map[8];
|
||||||
|
|
||||||
|
extern "C" void cuda_devicenames()
|
||||||
|
{
|
||||||
|
cudaError_t err;
|
||||||
|
int GPU_N;
|
||||||
|
err = cudaGetDeviceCount(&GPU_N);
|
||||||
|
if (err != cudaSuccess)
|
||||||
|
{
|
||||||
|
applog(LOG_ERR, "Unable to query number of CUDA devices! Is an nVidia driver installed?");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i=0; i < GPU_N; i++)
|
||||||
|
{
|
||||||
|
cudaDeviceProp props;
|
||||||
|
cudaGetDeviceProperties(&props, device_map[i]);
|
||||||
|
|
||||||
|
device_name[i] = strdup(props.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static bool substringsearch(const char *haystack, const char *needle, int &match)
|
static bool substringsearch(const char *haystack, const char *needle, int &match)
|
||||||
{
|
{
|
||||||
int hlen = strlen(haystack);
|
int hlen = strlen(haystack);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user