Optimising Collatz Conjecture for the TITAN V

in #gridcoin6 years ago (edited)

collatz header.PNG

Link to corresponding reddit thread here.

Alright, I guess this is part three in my series of articles on the TITAN V. This one should be pretty short, so let’s get into it. So some people were asking me in the comments of previous articles to optimise Collatz for the TITAN V to see what kinda completion times I could get with it. Turns out there was a fair bit of performance left up in the air.

Testing setup

The testing rig remains the same.

ComponentDescription
CPUIntel i7-4790K overclocked to 4.6GHz
CPU CoolerNZXT Kraken X62
Memory2 x 8GB G.Skill TridentX DDR3 @ 2400MHz
MotherboardASUS Sabertooth Z87
StorageSamsung 850 EVO 1TB, 1 x 3TB WD Green & Black
GPUNVIDIA TITAN V
PSUCorsair HX1000i
CaseCoolermaster MasterCase 5 Pro

Testing was conducted at 28C ambient and the TITAN V was overclocked using the below settings in MSI Afterburner 4.40 using NVIDIA's 390.77 driver.
MSI AB.png

Optimisation

So I looked up the appropriate parameters to put in the appropriate profile file on the Collatz forums, and this is eventually what I came up with as my final optimisation for the TITAN:

verbose=1
kernels_per_reduction=48
threads=7
lut_size=19
sleep=1
reduce_cpu=0
sieve_size=30

I’ll link the fairly rough spreadsheet here that I used to catalogue all the testing I did if you’re interested to see what the runtimes were for various combinations of parameters. If a space is left blank, that means it’s the same as it was previously.

So this looks pretty similar to the profile used for 1080 Ti’s with two exceptions - the thread count is decreased to 7 from 9 and the lut_size has increased to 19 from 18. The increase in lut_size can be explained because the TITAN V’s L2 cache is larger than the 1080 Ti, so it can fit a larger dataset in the L2 cache. The thread decrease I can’t really explain, but I did manage to shave off a few seconds by reducing this to 7.
So with this optimisation, the TITAN V runs Collatz work units as follows:
collatz test.png

It averages about 1:27 +/- 1s, so pretty fast. How does this compare to our previous, unoptimised result?

Results

TITAN VTime to completeEst. Max RACEst. Max MagPower Draw (W)Mag/W
Collatz Optimised~1:2727,858,935228.552600.879
Collatz Unoptimised~3:0018,075,144148.291830.810

Note: The unoptimised magnitude has been updated to reflect current magnitude per RAC so it is different from the first article.

Conclusion

So in terms of pure magnitude, it looks like optimised Collatz is roughly equivalent with Amicable, with both of them being in the 225 – 235 magnitude range (varies from superblock to superblock). However, optimised Collatz draws 70W of extra power, which leads optimised Collatz’s efficiency to be 0.879 Mag/W, which is lower than Amicable’s 1.297 Mag/W. In addition, because optimised Collatz draws so much more power, I pretty much have to run the fan at 100% constantly, and even then it still runs pretty hot, so Amicable is better in that respect as well. With Collatz I’m averaging 83 – 84C at 100% fan speed, with Amicable I’m at 76 – 77C at 80% fan speed. So running Amicable is just better in the long run in terms of reliability.

What’s next?

For my next part in exploring the TITAN’s capabilities in BOINC, I know some people have been asking for Linux benchmarks, since there may be a performance benefit from running Linux. I’m going to try and get Ubuntu 17.10 on a bootable USB with the latest Tesla V100 drivers and see if I can get some numbers from that. But that article’s probably gunna sit in the pipeline for a while since I’ve got some other ideas I’d like to write about before I get to that one.
Anyway, thanks for reading, and as always if you’ve got questions or suggestions, feel free to leave them below.

Sort:  

This post was upvoted by Steemgridcoin with the aim of promoting discussions surrounding Gridcoin.

This service is free. If you want to help the initiative, feel free to upvote this comment.

Have a nice day.

Disclaimer: This account was created by @Ragnarokdel and is not associated in any shape or form with the official gridcoin devs team.

Curious if you ever tried or plan on trying BOINC from within a linux virtual machine?

I hadn't considered running a Linux virtual machine, I was just gunna boot into Linux off a USB and run benchmarks through there. I might try a Linux VM when I'm writing my Linux benchmarks article and see if there's a performance difference.

Congratulations @cautilus! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @cautilus! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!