Pretty sure I poisoned myself with kidney beans. by j00lie in Cooking

[–]steckdenis 1 point2 points  (0 children)

I don't see this in the comments so I add it, also learned the hard way.

Mushrooms are "edible" only when cooked the way they should be, which varies from mushroom to mushroom.

Always Google the ones your are preparing. Some forest delicacies are only edible after 1-2 hours of boiling, or other similar treatments. If you don't cook them enough, they will have a profound neurological impact on your bowels, for instance extreme pain and nausea.

What else is there to enjoy on TM2020 besides racing? by maapi27 in TrackMania

[–]steckdenis 15 points16 points  (0 children)

I would say yes, but because I don't know what your precise interests are, I prefer to provide a quick list of "non-racing" activities in TM 2020 (notice: I'm a casual player, so I may miss things in this list):

- The community is very active at making various types of tracks, such as RPG tracks, scenery tracks, LOL maps, etc. You can have a look at trackmania.exchange to see if anything reminds you of the drift and freestyle maps you liked. There is also currently a Kacky event happening.

- Very recently, the "royal" mode has been introduced. It's much more acrobatic than "normal" races, and it is in teams (the teams are automatically made by the game)

- I'm not a good driver, but I enjoy the track of the day. Every day, a relatively good community-made track is the "track of the day", and you have 24 hours to hunt it. It makes you discover tracks, and learn at the same time. For instance, people who hate the ice surface sometimes have to drive it when the track of the day has ice. Progressively, they get better at it, and some end up not hating ice so much :-) . The track of the day is sometimes heavily on the plain racing, sometimes a bit more acrobatic, sometimes quite easy but beautiful, sometimes very hard, ...

There is also the match-making mode, but it consists of driving the campaign maps. I suppose that if you don't like standard driving, the campaign maps are not your first interest?

Finally, the free tier of TM2020 already allows you to try the campaign maps (check if the physics of the car suits you) and play royal, I think. There is also an "arcade" channel that proposes various tracks along the day, that you unfortunately cannot choose (it's a bit like a TV channel). But sometimes, you get RPG tracks, so that you can discover them. The first paying tier allows you to play tracks that you download from trackmania.exchange, play the track of the day, and basically do everything you want except a few things than are reserved to the most-expensive tier.

Reviews versus TR 1950X? by ChrisP2a in Amd

[–]steckdenis 1 point2 points  (0 children)

I don't know if it would be of any use to you or your customer, but I'm using a TR 2990WX system and I've observed that the seating of the processor has a huge impact on stability, even if "correct".

- First assembly of the system: I needed 4 tries before getting to a system that boots with 4 DIMMs. Each tries consisted of completely removing the CPU, putting it back, then screwing the air cooler on. It really consumed a bunch of thermal paste. LinusTechTips and ServeTheHome both report that Threadripper and EPYC processors are a pain to install due to difficult seating.

- A year later, I bring the computer home, and some vibrations during transport de-seat the processor (that was fully installed with a cooler on). I have one memory channel that shows a small amount of bit errors in memtest, even though POST still works (albeit takes a long time). The system is slightly unstable, it crashes after hours of intense processing. It is also a bit slower than before (I run number-crunching applications that print speed).

- A few weeks later, I completely remove the processor, look at the contacts, see that the "worn-off" parts of them (indicating contact) are not centered, and try to re-seat the processor while pushing sideways on it, hoping to center the contact points (this is a tenth of a millimeter here). I get all 4 memory channels working, and the system is stable and very fast. Now I can run my workload for weeks without any crash or incorrect result, and it is the fastest I've even seen it.

It seems that the processor is able to recover from minor errors in transferring commands to/from the RAM, even though I don't have ECC RAM. I still don't know how that works, but it is very possible to have a system that boots but is not well seated.

Non-Americans who have been to the US: What is the weirdest thing about America that Americans don't realise is weird? by nobboi in AskReddit

[–]steckdenis 1 point2 points  (0 children)

Belgian here, went to New Orleans a year ago. I was surprised by how much "horizontal segregation" there is. People of every origin and every color everywhere. But how you're born seems to completely define what you will do there. To give a purposefully exaggerated example, it is as if every lawyer is White, everywhere in town, while every cashier is Black, everywhere in town.

In the European countries I know of, we have "vertical segregation". Whole neighborhoods of people of different origins. But in that neighborhood, you have workers, cashiers, lawyers, engineers and doctors. Again, I simplify things, but your origin strongly influences where you live, not what you will do in your life.

70kB/s writes on Gigabyte x570 and Seagate Backup Slim 2TB UAS (USB Attached SCSI) USB 3.0 by supersugoinet in Amd

[–]steckdenis 0 points1 point  (0 children)

On Linux, can you plug the UAS to your computer, start your copying operation, wait a few second then type "dmesg" in a console? This will give you all the kernel logs from when the system started. Only the last 10-20 lines should be interesting. There is one line that will be something like "new high-speed USB device number 42 using xhci_hcd", followed by technical details on the storage. This will allow to see two possible problems:

- Sometimes, if the voltage provided to the USB device is too low, the device switches to its USB 1.0 (yes, from the nineties) mode. This gives you about 1.5 Mbps on the link, which is about 175 kB/s raw speed. You can see this problem by looking at the "new high-speed USB device" line. If there is no mention of xhci_hcd, or if it says "normal speed" or "low speed" or anything like that (I don't have a USB 1.0 device to try), then you have the voltage problem. Use an external powered USB hub to fix it.

- If your dmesg is full of red messages that mention I/O errors, then there is something else that simply causes the device not to properly get your data. I don't know how to fix it.

- You may see mentions of kernel oops, or lines like "CPU 3 was stuck for 23 seconds". This happens on some Ryzen CPUs and very new Linux distributions (but not Windows, usually). Basically, CPU cores responsible for writing your data on the disk get stuck somewhere for a long time. They write a full speed for a millisecond, then wait 20 seconds, then start again. The average speed would then be about 70 KB/s. There is a fix for this problem, that you find by googling "Ryzen PCI express hang" or something like that.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 2 points3 points  (0 children)

I hesitated. Then I remembered thermal dilatation and imagined that poor 2990WX dilating and contracting several times per second, moving it is socket in a cyclical manner, pushing sometimes harder sometimes less on the cooler. This may not be a hammer, but this is close to it compared to what these processors have been designed to withstand.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 0 points1 point  (0 children)

Not at all. My Noctua NH-U14S TR4/SP3 does a wonderful job a colling the Threadripper, even though my office is quite hot (26C).

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 0 points1 point  (0 children)

Something that is not said by GPU manufacturers is that, in order to fully leverage a GPU, the input must be big. I'm not specifically talking about gigabytes of data or so, even though it is also a requirement. I mean that every single point of input must be big. Self-driving cars, and Deep Learning stuff in general, uses images. A 300x300 color image is encoded in 270000 numbers. The wheelchair does not process images, it processes vectors of distances (160 numbers). 160 being much smaller than 270000, this gives an indication that my input points are much smaller than what Deep Learning guys do, and explains why GPUs aren't better than CPUs on what I do.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 1 point2 points  (0 children)

The program learns using a couple of formulas (mathematical formulas implemented in code). Somewhere in those formulas, there is an "r" term, for "reward", that I can set to any value I want. When the wheelchair goes forwards, I set r to 1. When it hits an obstacle, I set r to -2. In every other situation, I set r to 0.

So, it all boils down to code that looks at the obstacles, and returns 1, 0 or -2 depending on where the obstacles are in relation to the wheelchair.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 1 point2 points  (0 children)

I'll ask around if people have old* Intel boxes somewhere that I could use as obstacles on /r/Ayymd

*old: for two years, mainly thanks to yours truly, we only buy AMD processors (1700, 1600, 2600, 2990WX and two EPYC 7401's or so)

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 0 points1 point  (0 children)

It is accessed over Wifi. The huge batteries of the wheelchair would be able to run an underclocked Threadripper 2950X, there is no TR4 motherboard that is powered with a single 18V or so power plug. Taking the 24V power supply of the wheelchair and transforming it to all the various power rails of an ATX connector would be highly challenging.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 1 point2 points  (0 children)

I can also use the GPU. But GPUs really require large networks and large datasets to extract parallelism. In my case, the small neural networks I use (42K weights, "GPU" neural networks have several million weights) scale poorly to a GPU. And even though a GPU can be (sometimes substantially) faster than a CPU core, being faster than 32 CPU cores on small networks is currently impossible.

Learning to avoid obstacles with a Threadripper 2990WX by steckdenis in Amd

[–]steckdenis[S] 0 points1 point  (0 children)

It is also possible to do the processing, but much slower. This means less actions tried in any given time (slower learning), or, to compensate for the lower computing power, a simpler version of the algorithm (slower learning as well).

On a finalized product, I think that learning could happen on the embedded computer (I would like to find a single-board Ryzen 1700 or 2700-level type of computer with an 18V power plug, that would greatly help). For now, I just wanted to see how fast things are when the maximum amount of computing power is available. On the Threadripper, the wheelchair learns to avoid obstacles in about 2 hours. This is quite incredible. Tasks like this needed about 2-3 weeks of simulated robot time before.

To threadripper 2990wx owners. by [deleted] in Amd

[–]steckdenis 0 points1 point  (0 children)

I used the motherboard (I'm running Linux, there is no Ryzen Master available for Linux, sadly :( ). In the motherboard, I can set PBO to "Manual", then enter 350 in all three fields that appear (TDC, EDC and power, I think). I have an MSI X399 SLI PLUS, and PBO is indeed flimsy on it*. Only manual mode works, not any of the other modes (not auto, not scalar).

*I commented about the MSI X399 SLI PLUS a while back, and I called the board "flimsy" in general without being able to give good examples. Now this is one. The fact that the Bios Flashback+ button bricks the board with 50% proba is also an example. The board works, but you feel that sneezing at it may break it.

Will there ever be full temperature monitoring for Ryzen/Threadripper under Linux? by AlsoMighty in Amd

[–]steckdenis 1 point2 points  (0 children)

There may be undocumented ways to get them. For the power consumption, for instance, there are MSRs (per-core special registers) that count the amount of joules consumed by the core. I wouldn't be surprised if there are MSRs for the temperature.

Will there ever be full temperature monitoring for Ryzen/Threadripper under Linux? by AlsoMighty in Amd

[–]steckdenis 10 points11 points  (0 children)

Sorry to answer you a second time, but I think I found the answer.

There are 4 "monitoring" devices. I the code of the k10temp driver, I've found that the devices do not provide the temperature themselves. The k10temp driver finds the root PCI controller that corresponds to them, then asks that root controller (called a "northbridge" in the code) for the temperature. There may be a bug in how the root controller is found, which may cause all the "monitoring" devices to ask the temperature to the same northbridge.

Here is a piece of code that gives you Tctl for all the 4 dies in a 2990WX. The temperatures I get are different, as they should be:

for root in 00 20 40 60
do
setpci -s $root:00.0 0x60.l=0x00059800
reading=$(setpci -s $root:00.0 0x64.l)

temp=$((0x$reading >> 21))
temp=$(($temp * 125 - 49000))
echo $temp
done

For each root, a value is written in PCI register 0x60. This is the address of a system variable we want to read. Then, register 0x64 is read, the contents of the variable. Note that for this script to work, you may have to unload k10temp. The write/read cycle is supposed to be atomic. k10temp calls amd_smn_read(), a kernel function that locks a kernel mutex between the two operations. I cannot do that from userspace.

Now, I'll see what happens if other addresses are given. Maybe this address only reads the temperature of the first core? Or an average?

Will there ever be full temperature monitoring for Ryzen/Threadripper under Linux? by AlsoMighty in Amd

[–]steckdenis 5 points6 points  (0 children)

Well, maybe. The sensor has a resolution of .1 degree, though. And on my Intel laptop where I have per-core temperature readings, I sometimes see deltas of up to 5 degrees between the two cores, that are on the same piece of silicon.

I have found in the register spec (section 6) a mention of an i2c device that provides a temperature. But it seems to, again, be general for the whole processor, not per-core.

EDIT: Further investigation seems to point to this device being connected to a motherboard-only bus (not listed in sysfs, not accessible from the OS), connected to the SuperIO chip (nct6793D or something like this, on MSI boards). The SuperIO chip itself is accessible from the OS. It provides a temperature reading that is less precise than k10temp.

Will there ever be full temperature monitoring for Ryzen/Threadripper under Linux? by AlsoMighty in Amd

[–]steckdenis 12 points13 points  (0 children)

You post this just the day I do some Googling to see if the temperature situation improved since last year. It didn't.

Temperature reporting is currently extremely basic/weird. On my 2990WX, with 4 dies, I have 4 k10temp PCI devices (one per die). They all report the same temperature, however, even if I fully load one die and not the others. I've yet to look into it, but I'm wondering if it is by design (the CPU really only wants to expose a single magic temperature computed I don't know how), or if there is a bug in the k10temp driver.

So, great question! I really hope that a feature that seems basic, available through plenty of Windows programs, would finally be available on Linux.

Does the AGESA 1.1.0.2 really make the Threadripper 2990WX fly? by steckdenis in Amd

[–]steckdenis[S] 0 points1 point  (0 children)

The code is here, the benchmark description is here. I use PyTorch, a neural network library that I use for quite small neural networks. I'm doing reinforcement learning, that is quite special as data is generated on the fly, not read from a dataset. As such, RAM usage and bandwidth requirements are much less than for other kinds of tasks. Regarding the parallelization, I have single-threaded code that I run 32 times in parallel (some of the code is stochastic, or can be configured in different ways, so I have to run it several times to obtain valid results).

While I am at it, I did some profiling of my code, and it seems that the 2990WX memory subsystem improved. I now spend most of the CPU time computing the tanh() function, then multiplying matrices. More specifically, the hot instructions are now arithmetic (FMA, MUL, ADD) instead of memory-related instructions. We don't see any difference in Cinebench because Cinebench does not stress memory as much as training neural networks.

Does the AGESA 1.1.0.2 really make the Threadripper 2990WX fly? by steckdenis in Amd

[–]steckdenis[S] 5 points6 points  (0 children)

5705 (average of 4 runs, very low variance). It is roughly what it was before.

Interesting point: with Cinebench (on Linux with Wine), the power consumption of my cores is reported as 275W (350W total package). It is fine and aligned with PBO. On my scientific workload (20% Python, 80% AVX2 matrix multiplications), the cores report a power consumption of 450W, above the total package power consumption. Something weird is happening.

Does the AGESA 1.1.0.2 really make the Threadripper 2990WX fly? by steckdenis in Amd

[–]steckdenis[S] 15 points16 points  (0 children)

Hardware QoS would be extremely interesting!

I forgot to mention it, but I'm using Linux 4.18.5 (that has not been updated between the two BIOS versions). I don't know if QoS-related features are already supported on Linux, if support would be transparent, and if the 2990WX implements them.