Posts by Eric Driver

1) Message boards : Number crunching : 1 computer 2 gpus (Message 3100)
Posted 5 hours ago by Profile Eric Driver
Post:
Hello, I'm sure this has been asked but I can't find the answer. Is there any advantage to runs 2 GPUs on 1 pc? 1 of my motherboards has 2 full length slots.


Yes, there is an advantage.

The only thing to look out for is that each GPU thread will use a small portion of a CPU. The amount will depend on the GPU/CPU combo. For example, my 3.6GHz threadripper with a GTX1050 uses about 20% of a core, whereas my 3.3GHz core i5 with a GTX 1660 uses about 40% of a core.
2) Message boards : Number crunching : Proposed New Badge System (Message 3098)
Posted 18 days ago by Profile Eric Driver
Post:
The levels are:
10k, 100k, 500k, 1M, 2M, 5M, 10M, 25M, 50M, 100M, 250M, 500M, 1G, 2G, 5G, 10G
3) Message boards : Number crunching : Proposed New Badge System (Message 3094)
Posted 23 Jun 2021 by Profile Eric Driver
Post:
I finally got around to upgrading the badge system. Replaced the gemstone theme with a generic Number Fields badge. This also allowed me to add some new levels.

I can always swap out the images with a new theme at a later date if people find this theme too boring.

This involved some small changes to the code, so there's a chance I broke something. Please let me know if you notice anything amiss.
4) Message boards : Number crunching : Work feeder down (Message 3091)
Posted 19 May 2021 by Profile Eric Driver
Post:
Quick question.... If the sample_trivial_validator2 & My_assimilator2 is disabled, does that mean I won't receive any work?

I ask because I'm not getting any tasks.

Nevermind..... I figured it out. Doh!!! :/


The 2nd validator/assimilator was for the old bounded app which was completed a long time ago. I just removed them, which should eliminate any future confusion.
5) Message boards : Science : Availability of source code (Message 3089)
Posted 16 May 2021 by Profile Eric Driver
Post:
That's very interesting! It looks like it doesn't like having too many nested loops or if statements within loops. Not sure how to get around that. I wonder if it's vectorizing the innermost loops and how much that helps.
6) Message boards : Science : Availability of source code (Message 3087)
Posted 13 May 2021 by Profile Eric Driver
Post:
The change needed for the makefile is actually pretty simple. At the top there are several hard coded directories that need to be changed for your specific system. You'll notice all the -I/home/eric/... references in the build line - those should be pointing to directories on your system.
7) Message boards : Science : Availability of source code (Message 3085)
Posted 13 May 2021 by Profile Eric Driver
Post:
Hello,

Perhaps it's have been already tried but thought that auto vectorization may help. Indeed, it's typically the kind of calculus where it could be applied here.
See:
- https://en.wikipedia.org/wiki/Automatic_vectorization
- https://www.codingame.com/playgrounds/283/sse-avx-vectorization/autovectorization
- https://locklessinc.com/articles/vectorize/ (on my tablet it works but on my pc it's blank page thought for both I use Firefox)

If you already knew this and tried to implement it by tuning a bit code and/or using compilator flags, sorry for the noise.

Regards,

Julien


The compiler is configured to do the highest level of optimization, so it may have done some form of vectorization. If that's not the case, I guess it may be possible to refactor the code in order to take advantage of vectorization. But I don't know enough about it and it seems like a lot or work with no guarantee of success. Maybe you know a guru that does this kind of stuff?
8) Questions and Answers : Getting started : Where can I find friend requests? (Message 3082)
Posted 8 May 2021 by Profile Eric Driver
Post:
I have two messages from numberfields@home requesting friendship on my boinc manager notices. If I go to numberfields@home to view them it tells me to 'please log in as science united'. There is no info on the science united site about the requests?
How do I access them?


Maybe someone who understands the "Science United" system can answer this better than I, but here is my best guess...

Even though Science United consists of many users, within a project Science United is treated as a single user. So the whole concept of friend requests doesn't really make sense for the Science United "user", at least from the project's perspective. Perhaps there are ways of making friends within the Science United website, but I am not familiar with that.
9) Message boards : News : Batch plan (Message 3079)
Posted 29 Apr 2021 by Profile Eric Driver
Post:
For those interested as of 25 Apr 2021, 3:00:01 UTC SF 3 is 25.0% complete with 502.9 days remaining. This will bring us to Saturday, 10 September 2022 have rounded up to the next day. (I forgot to push the post reply button hence why "as of" time doesn't match post time)


I would point out there is a cyclic nature to the estimate as large numbers of hosts (mostly from Science United I think) cycle between projects. The estimate is currently at a peak. The low estimate is less than 300 days.

Thanks for pointing this out in that case it means we will be completed before 19th or 20th of February 2022. It will be nice to see it completed sooner rather than later :)


And now at the current rate, the estimate is 276 days, putting the completion in January of 2022. If only the rate could stay this way (or get faster)...
10) Message boards : News : Batch plan (Message 3077)
Posted 25 Apr 2021 by Profile Eric Driver
Post:
For those interested as of 25 Apr 2021, 3:00:01 UTC SF 3 is 25.0% complete with 502.9 days remaining. This will bring us to Saturday, 10 September 2022 have rounded up to the next day. (I forgot to push the post reply button hence why "as of" time doesn't match post time)


I would point out there is a cyclic nature to the estimate as large numbers of hosts (mostly from Science United I think) cycle between projects. The estimate is currently at a peak. The low estimate is less than 300 days.
11) Message boards : Number crunching : Computation error in AMD OpenCL tasks (Message 3075)
Posted 24 Apr 2021 by Profile Eric Driver
Post:
I tried to install latest available driver for my GPU. I installed AMD Catalyst 15.11.1 beta, instead of 14.9. Computation error stop occuring, and GPU started executing tasks.
But there's new problems. First, usage of GPU is very low, just few percents. Second, when GPU task is started, it almost immediatly use all RAM. Third, when task is close to completion, it's slowing down, so the task cannot be completed when it is close to 100%.
I'll try different versions of Catalyst, maybe i'll force my GPU to crunch eventually.


That sounds like the frustrations I had a couple years ago trying to get it to work on my HD5450. I eventually gave up and bought a new AMD GPU.

I don't know what the problem is. Either the older cards are incapable of handling the compute load, or the openCL compilers can't compile properly for the older hardware.
12) Message boards : Number crunching : Computation error in AMD OpenCL tasks (Message 3072)
Posted 22 Apr 2021 by Profile Eric Driver
Post:
Sorry for your troubles. I'm not sure what that error code means, I have a feeling it is meaningless.

Most problems with older cards are with the openCL compiler, so it's interesting that your GPU got past that phase and actually attempted to compute something. Unfortunately, I have no idea what the problem could be.

One thing you could try is reducing the resources used by adding an entry to gpuLookupTable.txt for your card (set values to 32/32 for example). This is a long shot, so I only suggest doing this if you have nothing better to do with your time and enjoy this kind of troubleshooting. Also note, this method actually worked on my wife's old Nvidia card, but the WUs ended up taking 8 to 12 hours to run, so in the end it wasn't worth the effort.
13) Message boards : Science : Availability of source code (Message 3068)
Posted 9 Apr 2021 by Profile Eric Driver
Post:
Hello,

Ok I don't know what happened about my message.
I wonder if extracting invariants in some loops may help a bit + add a bit of redundancy to avoid n tests.
Here's a patch I must recognize I haven't even built since I haven't taken a look at the build mechanism for the moment.


I should mention the vast majority of the compute time is spent inside the polynomial discriminant calculation. So the biggest improvement will be found inside the polDiscTest_*.cpp files (there are 3 versions: cpu, openCL, and cuda).

The 2nd best place to look for improvement is in the function Mart52Engine_Tgt(), especially inside the multitude of nested loops. Also inside the function testPolys where a final set of tests are performed on the remaining polynomials. Note these final tests involve computing the field discriminant which is even more complex than the poly discriminant. This is so complex, that I didn't even attempt to do it on the GPU - the good news is the polDisc test filters out more than 99.99% of the polynomials so that the CPU can quickly test the few that remain.

So unfortunately your patch would have almost no effect on the timing (that part of the code finishes instantaneously). But that was a good first try!

Feel free to send me a private message to chat more. No need to bore the casual user with code discussion.
14) Message boards : Science : Availability of source code (Message 3065)
Posted 8 Apr 2021 by Profile Eric Driver
Post:
Hello,

Thank you for the quick feedback!
No pb to access it. I hadn't expected 2.4GB to download ! :-)
I don't know if you received my message where I proposed a patch. (I haven't forked yet your repo to use merge request feature)


It's probably big because I put the binaries into the repo. I did this to make it easy for novice users to just grab the binary and test it on their GPU without having to build it.

I didn't see any message. Not sure where you messaged me. My inbox on github is empty and there are no new private messages on this site.
15) Message boards : Science : Availability of source code (Message 3063)
Posted 6 Apr 2021 by Profile Eric Driver
Post:
Ok, I have made the source code public. Here is the link to the github repo:
https://github.com/drivere/get-decics-numberfields

Please let me know if there are any questions or problems accessing it.
16) Message boards : Science : Availability of source code (Message 3062)
Posted 5 Apr 2021 by Profile Eric Driver
Post:
Hello,

Would it be possible to make available source code (CPU and GPU related programs) so people may try to propose some changes to optimize?

Julien


Yes, thanks for reminding me. I have a private github repo that I've been meaning to make public. I'll try to do that later today.
17) Message boards : News : New GPU OpenCL versions available (Message 3052)
Posted 8 Feb 2021 by Profile Eric Driver
Post:
I'm sorry for my ignorance, but where do I find the GPU string provided by BOINC?
However I think the RX570 is not a substring of the RX5700, because they are 2 GPUs of different architecture see the following links for more information:

AMD RADEON RX570 https://www.amd.com/en/products/graphics/radeon-rx-570
AMD RADEON RX5700 https://www.amd.com/en/products/graphics/amd-radeon-rx-5700-xt-50th-anniversary


This is a "string" from a software perspective, meaning just a series of raw characters. The characters "RX570" are part of "RX5700", which is what we mean when we say "RX570" is a substring of "RX5700". This has nothing to do with the actual graphics cards.

The string given by the BOINC api is printed at the top of the stderr. The stderr is given with each completed task. For example here is one of your tasks:
https://numberfields.asu.edu/NumberFields/result.php?resultid=107841147
And your GPU string is:
GPU Summary String = [CAL|AMDRadeonRX5700XT50thAnniversary|1|8176MB||200]
18) Message boards : News : New GPU OpenCL versions available (Message 3050)
Posted 8 Feb 2021 by Profile Eric Driver
Post:
A curiosity, in the file "gpuLookupTable_v402.txt", for AMD GPUs, in the column "GPU Name" it says RX570, in the column "numBlocks" it says 2048 and in the column "threadsPerBlock" it says 64, why does the app take these parameters also for my GPU which is an AMD Radeon RX 5700 XT 50th Anniversary and not an RX570?


That would be a flaw in the lookup table code. It checks if the string in the lookup table is a substring of the BOINC provided GPU string. In this case "RX570" is a substring of "RX5700". This method should be made more robust so that there is a one-to-one mapping between entries in the lookup table and actual GPUs. The RX5700 should be able to handle the 2048x64 setting, so not a big deal.
19) Message boards : News : New GPU OpenCL versions available (Message 3047)
Posted 6 Feb 2021 by Profile Eric Driver
Post:
On linux with amd vega64 it got stock with 100% utilization and 80w power usage (not doing anything), until i disabled the screen saver. After that worked for 2 days without any problem.
For vega64 the app is very inefficient, 7 minutes for a workunit at 160-170w and maximum stable is numBlocks 1024 with threadsPerBlock 64. Running 2 workunits it hangs with the same 100% utilization and 80w power usage. Amd driver apencl=rocr.
A linux laptop with amd rx580 finishes in 8 to 8:10 minutes using 40w with 1024-64 settings, and 9:30 minutes using 38-40w with 1024-32. Many workunits error up with "SIGSEGV: segmentation violation" using amd driver opencl=legacy,rocr.
Both graphics cards with rocm 4.0.1 driver have a memory problem, memory goes from 0 to 3200-3500mb and back every 2-3 seconds with lag in desktop and running times in hours.


Thanks for the feedback! Without it it's hard to know anything is wrong since everything runs smoothly on my machines. The only time I've had issues is when I stream video while the app is running, and I've learned to suspend GPU processing in the client before doing such things. I thought that was typical behavior with GPU processing, but maybe I am wrong?

The inefficiency on the vega64 might be the driver, since all apps use the exact same opencl code. The biggest source of problems is the opencl compiler which comes bundled with the driver.

Regarding the SIGSEGV errors, I looked at the stderr and it appears these errors all occur before the GPU is acquired. In fact, they occur just before the polynomial buffers are allocated on the CPU. I don't see any memory allocation errors, but maybe the SIGSEGV is thrown before the return from the malloc call. Whatever the cause, this is not a GPU or opencl problem. The problem could be a resource problem on the CPU side, since the opencl apps require bigger data buffers on the CPU. If you continue to see these errors try reducing the numBlocks to 256 or 512 (keep threadsPerBlock at 64 for best performance).

Not sure what to make of the memory usage jumping between 0 and 3.2GB. Memory usage on the GPU should never get that high with the NumberFields app, unless numBlocks was set way too high.
20) Message boards : News : New GPU OpenCL versions available (Message 3045)
Posted 6 Feb 2021 by Profile Eric Driver
Post:
When you get a chance, could you look at the stderr.txt for a WU that's stuck and paste the output here (before you unstick it). That should give me an idea where in the processing it is before it hangs.


Don't worry about getting the stderr output. I gathered the information from the WUs that failed. It is building the opencl code without error and doesn't hang until it gets to the GPU (which I suspected was the case). It appears to hang because it is waiting on the GPU to finish. I don't know if the GPU is actually stuck, or something is blocking the kernels from running.


Next 20


Main page · Your account · Message boards


Copyright © 2021 Arizona State University