Optimising Collatz Conjecture for the TITAN V
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.
Component | Description |
---|---|
CPU | Intel i7-4790K overclocked to 4.6GHz |
CPU Cooler | NZXT Kraken X62 |
Memory | 2 x 8GB G.Skill TridentX DDR3 @ 2400MHz |
Motherboard | ASUS Sabertooth Z87 |
Storage | Samsung 850 EVO 1TB, 1 x 3TB WD Green & Black |
GPU | NVIDIA TITAN V |
PSU | Corsair HX1000i |
Case | Coolermaster 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.
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:
It averages about 1:27 +/- 1s, so pretty fast. How does this compare to our previous, unoptimised result?
Results
TITAN V | Time to complete | Est. Max RAC | Est. Max Mag | Power Draw (W) | Mag/W |
---|---|---|---|---|---|
Collatz Optimised | ~1:27 | 27,858,935 | 228.55 | 260 | 0.879 |
Collatz Unoptimised | ~3:00 | 18,075,144 | 148.29 | 183 | 0.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.
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
Congratulations @cautilus! You received a personal award!
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!