Bitcoin Forum
June 21, 2025, 08:16:49 AM *
News: Pizza day contest voting
 
   Home   Help Search Login Register More  
Pages: « 1 ... 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 [401] 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 ... 1240 »
  Print  
Author Topic: CCminer(SP-MOD) Modded GPU kernels.  (Read 2347848 times)
joblo
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
December 12, 2015, 05:02:28 PM
 #8001

Compiling on Windows is a pain. I have to rebuild my compile environment every month because VS shuts down
unless I register. I had to create a virtual machine snapshot before installing VS the first time, otherwise the
tombstone from the previous install would trigger the forced registration imediately.

Compile with visual studio express 2013. It is free

VS community is advertised as free but it only works for a month without registering. The registration might be
free but I haven't tried it. I don't recall beig able to download VS Express, I'll take another look, thanks.

Got the test results on a EVGA 980 reference standard clocks.

                 76-7.5       76-6.5        74-6.5
quark        19.9          19.3           19.3
x11           9850         9920          10000
lyra2v2     10.7          11.4           11.6
neo           220           635            640

These results confirm the increase in quark is purely due to cuda 7.5. It also shows no degradation
in cuda 6.5 performance, a win-win for quark.

The neo degradation is also purely due to cuda 7.5 with no significant difference between r74 & r76
when compiled with cuda 6.5.

X11 is interesting, the 76-6.5 performance is lower than 74-6.5 and the 76-7.5 performance is lower still, a lose-lose.

Since quark was the focus of the most recent changes it proves that cuda 7.5 can perform better than 6.5. I hope
these results translate to the other algos.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
pallas
Legendary
*
Offline Offline

Activity: 2716
Merit: 1094


Black Belt Developer


View Profile
December 12, 2015, 05:13:29 PM
 #8002

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 05:28:25 PM
 #8003

Got the test results on a EVGA 980 reference standard clocks.

                 76-7.5       76-6.5        74-6.5
quark        19.9          19.3           19.3
x11           9850         9920          10000
lyra2v2     10.7          11.4           11.6
neo           220           635            640

Thanks for testing. Can you please try to compile release 74 with x86 build and cuda 7.5?

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 05:54:52 PM
 #8004

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.

This is not a solution, this is a workaround. Smiley

x11 was hashing @ 1900KHASH in release 74 on the 750ti when building with cuda 7.5(x86) I modded it to go to 2940 in release 76, wich is a bit below release 74 buildt with cuda 6.5.

After changing the compiler version in the project, all the kernals need to be retuned.
I haven't finished yet.

My 5% increase in the quark hashrate has only given me a little more than 0.1 btc in donations.
Please donate some more guys. I need your support.

Here you can see my latest opensource work:

https://github.com/sp-hash/ccminer/commits/windows

...

Since cude 7.5 is increasing the register and stack usage in the table based AES algos, I reduced the number of threads per block to compensate. I also had to move some precalc tables into the instruction cache. (inlined in the instructions.) I also have reduced the codesize abit since cuda 7.5 seems to loop bether. etc..etc..

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
joblo
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
December 12, 2015, 06:00:27 PM
 #8005

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

If I undertstand the result neo is compiled with 6.5 and eveyrthing else with 7.5. Then it is all linked
with 6.5. I'm not sure linking object files from different compilers is safe.

I prefer to use a script to select the prefered executable based on the algo. Less work, less risk, more
flexible.

Edit: but it's still a workaround. Wink

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
pallas
Legendary
*
Offline Offline

Activity: 2716
Merit: 1094


Black Belt Developer


View Profile
December 12, 2015, 06:09:25 PM
 #8006

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

If I undertstand the result neo is compiled with 6.5 and eveyrthing else with 7.5. Then it is all linked
with 6.5. I'm not sure linking object files from different compilers is safe.

I prefer to use a script to select the prefered executable based on the algo. Less work, less risk, more
flexible.

Edit: but it's still a workaround. Wink

Linking object files from different compilers: I've often linked object files create with a C compiler and others created with an assembler.
In ccminer, some objects are compiled with gcc, some others with nvcc... you get the picture.

sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 06:15:17 PM
 #8007

Since quark was the focus of the most recent changes it proves that cuda 7.5 can perform better than 6.5. I hope these results translate to the other algos.

I have showed that it can be done with quark.
I believe the other algos can be tuned faster as well with more work..

0.01 BTC guys. This is all I am asking Smiley

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
pallas
Legendary
*
Offline Offline

Activity: 2716
Merit: 1094


Black Belt Developer


View Profile
December 12, 2015, 06:18:08 PM
 #8008

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.

This is not a solution, this is a workaround. Smiley


I don't see a problem.
Most people already have both cuda 6.5 and 7.5.
With some little changes to the Makefile, you could compile each kernel with its best cuda version, in a single executable.

sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 06:19:52 PM
 #8009

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
This is not a solution, this is a workaround. Smiley
I don't see a problem.
Most people already have both cuda 6.5 and 7.5.
With some little changes to the Makefile, you could compile each kernel with its best cuda version, in a single executable.

Don't you want to know if cuda7.5 can make your code faster?. A recoding is probobly required.

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
pallas
Legendary
*
Offline Offline

Activity: 2716
Merit: 1094


Black Belt Developer


View Profile
December 12, 2015, 06:21:55 PM
 #8010

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
This is not a solution, this is a workaround. Smiley
I don't see a problem.
Most people already have both cuda 6.5 and 7.5.
With some little changes to the Makefile, you could compile each kernel with its best cuda version, in a single executable.

Don't you want to know if cuda7.5 can make your code faster?. A recoding is probobly required.

You can do both things.
On amd we've been doing this forever.

sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 06:23:37 PM
 #8011

//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-19805474
// Cuda compilation tools, release 7.5, V7.5.16
// Based on LLVM 3.4svn
//
cuda 6.5 is 1.5 years old.

1.5 year development of compiler technology.

I think we need this to reach the optimal kernal speed.. It worked in the quark kernal, and it should work in the others as well.

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
joblo
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
December 12, 2015, 06:33:52 PM
 #8012

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

If I undertstand the result neo is compiled with 6.5 and eveyrthing else with 7.5. Then it is all linked
with 6.5. I'm not sure linking object files from different compilers is safe.

I prefer to use a script to select the prefered executable based on the algo. Less work, less risk, more
flexible.

Edit: but it's still a workaround. Wink

Linking object files from different compilers: I've often linked object files create with a C compiler and others created with an assembler.
In ccminer, some objects are compiled with gcc, some others with nvcc... you get the picture.

I get the picture. I got a pascal program to call a fortran subroutine several decades ago. No available linker could handle it I had to
link it manually.

The examples you gave are where it is explicitly supported by the respective linkers. I wouldn't expect that support in different
major versions of the same compiler. ABI changes can be introduced.

I'm not saying it can't be done, just that it's probably not supported and might not always work.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
djm34
Legendary
*
Offline Offline

Activity: 1400
Merit: 1050


View Profile WWW
December 12, 2015, 06:38:31 PM
 #8013

Since quark was the focus of the most recent changes it proves that cuda 7.5 can perform better than 6.5. I hope these results translate to the other algos.

I have showed that it can be done with quark.
I believe the other algos can be tuned faster as well with more work..

0.01 BTC guys. This is all I am asking Smiley
so you need donation because you believe it can be done ? Grin Grin






djm34 facebook page
BTC: 1NENYmxwZGHsKFmyjTc5WferTn5VTFb7Ze
Pledge for neoscrypt ccminer to that address: 16UoC4DmTz2pvhFvcfTQrzkPTrXkWijzXw
djm34
Legendary
*
Offline Offline

Activity: 1400
Merit: 1050


View Profile WWW
December 12, 2015, 06:55:59 PM
 #8014

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

If I undertstand the result neo is compiled with 6.5 and eveyrthing else with 7.5. Then it is all linked
with 6.5. I'm not sure linking object files from different compilers is safe.

I prefer to use a script to select the prefered executable based on the algo. Less work, less risk, more
flexible.

Edit: but it's still a workaround. Wink

Linking object files from different compilers: I've often linked object files create with a C compiler and others created with an assembler.
In ccminer, some objects are compiled with gcc, some others with nvcc... you get the picture.

I get the picture. I got a pascal program to call a fortran subroutine several decades ago. No available linker could handle it I had to
link it manually.

The examples you gave are where it is explicitly supported by the respective linkers. I wouldn't expect that support in different
major versions of the same compiler. ABI changes can be introduced.

I'm not saying it can't be done, just that it's probably not supported and might not always work.
used for quite some time c++ programme linked to old fortran libraries, this was done automatically (well in a script).

Also regarding nvcc, there are different way to link and compile. You can very well compile one part or the other with one cuda version or another and do the linking with gcc (and I am not entirely sure, but I think for linking cuda is just calling the default compiler (gcc or visual stuff... so actually it doesn't really matter that you compile with various cuda version...

djm34 facebook page
BTC: 1NENYmxwZGHsKFmyjTc5WferTn5VTFb7Ze
Pledge for neoscrypt ccminer to that address: 16UoC4DmTz2pvhFvcfTQrzkPTrXkWijzXw
joblo
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
December 12, 2015, 07:18:48 PM
 #8015

Got the test results on a EVGA 980 reference standard clocks.

                 76-7.5       76-6.5        74-6.5    74-7.5
quark        19.9          19.3           19.3        19.7
x11           9850         9920          10000     7680
lyra2v2     10.7          11.4           11.6        10.9
neo           220           635            640         220

Thanks for testing. Can you please try to compile release 74 with x86 build and cuda 7.5?


Done, results included above. The quark rate with 74-7.5 was unexpected, some of the previous changes
must have provided a bigger improvement on cuda 7.5 than 6.5

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
scryptr
Legendary
*
Offline Offline

Activity: 1798
Merit: 1028



View Profile WWW
December 12, 2015, 07:22:13 PM
 #8016

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.

This is not a solution, this is a workaround. Smiley


I don't see a problem.
Most people already have both cuda 6.5 and 7.5.
With some little changes to the Makefile, you could compile each kernel with its best cuda version, in a single executable.


PLEASE POST THE FRANKEN-WEENIE WORKAROUND--

If you could post a Windows executable with the promised features, I'll donate.  Quark is faster with release dot 76.  I want to use the executable with NiceHash Miner and auto-switch.  On Linux, I could compile it myself... but I don't have a working autoswitch script.       --scryptr

SCRYPTR'S NOTEBOOK: https://bitcointalk.org/index.php?topic=5035515.msg46035530#msg46035530
GITHUB: "github.com/scryptr"  MERIT is appreciated, also.  Thanks!
pallas
Legendary
*
Offline Offline

Activity: 2716
Merit: 1094


Black Belt Developer


View Profile
December 12, 2015, 07:27:28 PM
 #8017

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.

This is not a solution, this is a workaround. Smiley


I don't see a problem.
Most people already have both cuda 6.5 and 7.5.
With some little changes to the Makefile, you could compile each kernel with its best cuda version, in a single executable.


PLEASE POST THE FRANKEN-WEENIE WORKAROUND--

If you could post a Windows executable with the promised features, I'll donate.  Quark is faster with release dot 76.  I want to use the executable with NiceHash Miner and auto-switch.  On Linux, I could compile it myself... but I don't have a working autoswitch script.       --scryptr


I never built ccminer on windows. I don't even have a working windows environment with cuda and nvidia drivers. Sorry.
Maybe I could do a Makefile (or whatever) patch to make neoscrypt compile on 6.5 and post a pull request? That way sp_ can build the win binary for everybody. But I don't think he agrees on "the method".

sp_ (OP)
Legendary
*
Offline Offline

Activity: 2926
Merit: 1087

Team Black developer


View Profile
December 12, 2015, 07:34:32 PM
 #8018

Got the test results on a EVGA 980 reference standard clocks.
                 76-7.5       76-6.5        74-6.5    74-7.5
quark        19.9          19.3           19.3        19.7
x11           9850         9920          10000     7680
lyra2v2     10.7          11.4           11.6        10.9
neo           220           635            640         220
Thanks for testing. Can you please try to compile release 74 with x86 build and cuda 7.5?
Done, results included above. The quark rate with 74-7.5 was unexpected, some of the previous changes
must have provided a bigger improvement on cuda 7.5 than 6.5

My tuning rig doesn't contain a gtx 980. I only have 750ti, 960, 970x2. your results are different than mine in the quark algo.

As you can see I have optimized x11 30% faster(than release 74 compiled with cuda 7.5), but still slower than cuda 6.5.


(but only 4 of the 11 x11 kernals have been changed)

Team Black Miner (ETHB3 ETH ETC VTC KAWPOW FIROPOW EVRPROGPOW MEOWPOW + dual mining + tripple mining.. https://github.com/sp-hash/TeamBlackMiner
scryptr
Legendary
*
Offline Offline

Activity: 1798
Merit: 1028



View Profile WWW
December 12, 2015, 07:38:31 PM
 #8019

MINERS WILL DONATE FOR FRANKEN-WEENIE--

No waiting. Work on the purist executable at your own pace.  Maybe DJM will flip out some useful code for neoscrypt.  Maybe we will all just get along.       --scryptr

SCRYPTR'S NOTEBOOK: https://bitcointalk.org/index.php?topic=5035515.msg46035530#msg46035530
GITHUB: "github.com/scryptr"  MERIT is appreciated, also.  Thanks!
joblo
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
December 12, 2015, 07:45:22 PM
 #8020

I've found a solution to the neoscrypt problem: building a cuda 6.5/7.5 hybrid.
Tested working on Linux. Here's the procedure:

- build ccminer with cuda 7.5 as usual
- remove all the object files in the neoscrypt folder: rm neoscrypt/*.o
- edit Makefile
- replace all the instances of "7.5" with "6.5"
- run make again
- you just made a ccminer executable with all the algos on 7.5 except neoscrypt on 6.5 :-)
- revert the Makefile changes to build it again in the future

If you find this useful, please donate to the BTC address in my signature.

If I undertstand the result neo is compiled with 6.5 and eveyrthing else with 7.5. Then it is all linked
with 6.5. I'm not sure linking object files from different compilers is safe.

I prefer to use a script to select the prefered executable based on the algo. Less work, less risk, more
flexible.

Edit: but it's still a workaround. Wink

Linking object files from different compilers: I've often linked object files create with a C compiler and others created with an assembler.
In ccminer, some objects are compiled with gcc, some others with nvcc... you get the picture.

I get the picture. I got a pascal program to call a fortran subroutine several decades ago. No available linker could handle it I had to
link it manually.

The examples you gave are where it is explicitly supported by the respective linkers. I wouldn't expect that support in different
major versions of the same compiler. ABI changes can be introduced.

I'm not saying it can't be done, just that it's probably not supported and might not always work.
used for quite some time c++ programme linked to old fortran libraries, this was done automatically (well in a script).

Also regarding nvcc, there are different way to link and compile. You can very well compile one part or the other with one cuda version or another and do the linking with gcc (and I am not entirely sure, but I think for linking cuda is just calling the default compiler (gcc or visual stuff... so actually it doesn't really matter that you compile with various cuda version...

Just for kicks I googled it. nvcc does do a compatibility check on g++ (in the example below) versions so they do explicitly support
it and there are versions that don't work.

http://stackoverflow.com/questions/9421108/how-can-i-compile-cuda-code-then-link-it-to-a-c-project

I don't know for sure whether nvcc supports different versions of itself, it may have checked and passed in your case.
If I was a compiler developper it would be a very low priority as it would complicate changing the ABI and is generally only useful
when the original source code is not available.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
Pages: « 1 ... 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 [401] 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 ... 1240 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!