RAM information on available K plots

text
Photo by Markus Spiske on Pexels.com

With any new technology, information is king. As proverbial farmers, we need to know the ins and outs of our tools. In our case, the Chia Plotter is our main tool. What’s the best way to plot? What are these other K plots? In this post, I’d like to provide some more exact information on all the different plotting types. I’ve seen information out that that just seems to be multiples of K32’s, which I found is not correct. I captured this information with version 1.1.4 of the Chia Client.

First lets start with UniformSort and QuickSort. If you don’t know what these are, reference this post to learn more. During plotting you will notice different “u_sort min” and “qs min” sizes for each bucket while the plotter is plotting. These differences I will call the u_sort levels. There are ten different levels of u_sort. Each level requires a different u_sort min in order to UniformSort that bucket. Also, there are two additional levels where only half the ram allocated is used for the u_sort min. These are “Level A” and “Level B”. In the table I list all of the different levels, per K-type, as well as how many buckets were affected by that level. The sizes for u_sort are in GiB:

u_sort
Levels
K32
(u_sort/QTY)
K33
(u_sort/QTY)
K34
(u_sort/QTY)
K35
(u_sort/QTY)
Level 10.563 / 1861.125 / 1902.250 / 2394.500 / 237
Level 20.750 / 1311.625 / 1313.250 / 1995.000 / 62
Level 31.125 / 2532.500 / 3734.750 / 2026.500 / 131
Level 41.375 / 922.875 / 585.000 / 16310.000 / 351
Level 51.500 / 4273.250 / 4276.000 / 11312.000 / 94
Level 61.625 / 1533.375 / 1226.500 / 42713.000 / 427
Level 72.250 / 734.750 / 1627.000 / 18214.500 / 147
Level 82.750 / 365.750 / 709.500 / 5420.000 / 74
Level 93.250 / 1036.750 / 13412.000 / 1524.000 / 34
Level 10N/AN/A14.000 / 7429.000 / 109
Level A0.500 / 5241.125 / 4132.250 / 4134.500 / 413
Level B1.250 / 5142.500 / 4125.000 / 41210.000 / 412
Table 1: u_sort min analysis

Let me explain how to interpret the data above with an example. Lets look at Level 1 K32. The minimum RAM required to perform a uniform sort is 0.563GiB and it appeared on 186 buckets during the plotting process. With this data, we can come up with different tiers of RAM requirements per K-type:

TiersK32 RAMK33 RAMK34 RAMK35 RAM
No QS3.251GiB6.751GiB14.001GiB29.001GiB
12.751GiB5.751GiB12.001GiB24.001GiB
22.501GiB5.001GiB10.001GiB20.001GiB
32.251GiB4.751GiB9.501GiB14.501GiB
Table 2: Different Possible RAM Settings in the plotter

In the table above, you can see the different levels that you can set the RAM in your plotter to.

  • No QS – If you want NO QuickSort, then configure your plotter with that RAM.
  • Tier 1 – Setting your plotter to this value will QuickSort only the highest u_sort level.
  • Tier 2 – Using this value will QuickSort the highest two levels.
  • Tier 3 – Finally, Using this value will QuickSort the highest two levels plus level B. Level B is a huge mount of buckets in phase 3. The plot time in my parallel plotting between 11 Tier 2 plotters to 12 Tier 3 plotters was about 2000-2500 seconds. Level B is a huge time sink if you need to QuickSort it.

You can go past tier 3 and make your own tier using the information in the first table. There is one last nugget of information that came out of this testing, that is the absolute minimum RAM required in order for the plotter to not fail (In theory). With all this information, we can make a new recommended RAM table for two threads. Remember, the more threads you use, the more will be used from the RAM you configure in the plotter.

RAM GiB
Bitfield: On
MinimumMediumMaximum
K320.8142.5013.251
K331.6895.0016.751
K343.50210.00114.001
K357.25220.00129.001
Table 3: Recommended RAM per K-type

Bottom line: If you are RAM limited like me and are looking to squeeze more plotters in parallel, use this information to make a custom setting for your system. At the end of the day, Total plots per day is the metric you want to maximize.

Edit: Thanks to the comment of a reader. I forgot to add an example of how to use this information. Lets take my system for example. It has 12core/24thread which can support 18 plotters at the same time with the right delay. But, my RAM is 32GB. If you look at the “Maximum” setting for K32 in Table 3, you will see that my 32GB of ram can only support 9 plotters at once. Is this the best solution? Well, if I lower the RAM per plotter, I can have more plotters. Looking at Table 2 I can see some options. If I drop the plotters to 2.751GB the RAM can support 10 plotters (Because I need some RAM for Windows). If I drop the plotters to 2.501GiB, The RAM can support 11 plotters. Here is where trial and error comes into play. You’ll have to test out the settings to see if its worth it to drop the RAM so that more plotters can be used.

9 thoughts on “RAM information on available K plots

  1. if you lower the ram for each plotter but u can do 1 or 2 more, but what about the time , does it take longer or shorter to finnish a plot / phase ?

    1. Hi MrYk, Yes, your plotter times will be longer if you choose to lower your RAM. This is where the trial and error comes in. You have to test if its worth it or not.

  2. It’s amazing the info you share… You really help a lot. A lot of good and detailed info. I spend hours reading your posts ahha. Gotta double read them because of the language barrier. Still, already learning a looot… Thanks for that.
    I’m still struggling a little to maximize my plotting and already lost a few days of plotting due failure (SSD without space or RAM full) and GUI crashing (i’m still not ready for ps plotting). I’m received new stuff this week, and would also like you tips if you don’t mind:

    – i5 – 11400 : 6cores / 12 threads
    – 32GB RAM
    – 2 x 1TB nvme
    – 2 x HDD 8TB

    atm im plotting 4 queues, same time different names, (1tb sdd + 16gb) and is taking about 9/10 hours per plot. For new config can I get your ideas? Thinking of doing parellel with delays to optimize cpu threads.
    Thanks again for all the info…

    1. Hi Paulo, thanks for the comment. With that System you can have 8 plotters in parallel. Start two plotters (2thread/3389RAM. each one with its own NVMe for temp and HDD for destination). Delay 30 minutes. Then start another two with the same settings. delay 30 minutes. start another two. delay 30 minutes. start the last two. You’ll now have 8 plotters going. This should get you close to maximum plots per day.

      1. Thanks for the answer. If i understood correctly the parallel with the delay is mainly used to avoid bootleneck when copying to the HDD. If i use a ssd for final destination and then use the robocopy tip to copy the files to the final farm, could i be just using 8 queues in serial? Using 4 at each 1tb nvme? Or it would take more time with all of them stressing the CPU at the same time in phase 1? Thanks again…

      2. Yes, The delay is mainly to allow enough time to write to the HDD so that there is no bottleneck. If you use an SSD, then I would set the delay to 5-10 minutes. I still would not start them all at the same time, it needs a little delay at least. Yes, use 4 plotters on each 1TB NVMe.

  3. Thanks for this post. thanks por ALL your blog post 🙂 They are tons of testing hours for sure!

    I’m gonna share my actual build:

    ryzen 9 3900 (not X) @4200. 12cores / 24 threads
    X570 motherboard
    32GB RAM 3600.
    1x 1TB nvme pcie 4.0. Sabrent rocket 4: 855MB/S 64k sustained write (after SLC cache falls )
    1x 1TB nvme pcie 3.0 (2x512nvme raid0 in pciexpress Jeyi 4xnvme cheap aliexpress card 24$. It requires pciex bifurcation in bios).
    1x SATA SSD 2TB QLC, samsung 970 qvo. VERY slot dont buy it!.
    1x SATA SSD 512TB samsung 860 evo
    Several HDD destinations, usb.


    My limit was the ram too. Now i’m doing 10 paralel ploting.
    y have 4 jobs (swar plot manager, github python chia manager)
    -1x plot sata ssd plot 2501Mb RAM Tier2, 4 threads. max 1 plot of this job at same time.
    -1x plot sata ssd plot 2501Mb RAM Tier2, 4 threads. max 1 plot of this job at same time.
    -4x plots nvme 1TB plot 3251RAM (testing), 4 threads. max 2plots in phase1 at same time. Plots Stagged 15 mins
    -4x plots nvme 1TB plot 3390RAM (default), 4 threads. max 2plots in phase1 at same time. Plots Stagged 16 mins

    Cpu is 24×7 between 25 and 28gb ram used. Cpu from 60 to 100%. As nvme plots are stagged, i can fit 4 temps (2x256Gb) in 1TB , 935gb formatted drive. Looks like i have not bottlenecks. Every plot finish alone and copy to one HDD at same time only.

    I start “round 1” with 6 paralel x4 threads = 24.
    In “round2” this 6 plots will use 6 threads in phase 2. Then 4 more plots (4 thread each) starts. Total: 22 threads in use.
    In “round3” all 10 plots goes to phases 2-3 or 4, using 10 plots –> 10 threads.
    Max theorical ram used is 31,4. Max real ram used is about 30gb or less.
    Each plot finish about 7-8hours in nvme and 8h in sata ssd.

Comments are closed.

%d bloggers like this: