SHAKTI-MS: a RISC-V processor for memory safety in C
Home setup part 1: The Oasis
For the lat couple of months, I’ve been spending my weekends setting up my home PC, network and other infrastructure. Over this series of blog posts, I will describe the setup, and various design decisions that went into it.
The first thing I did after moving to Mumbai was to build a PC. I bought all the parts from a local retailer that came highly recommended by a friend, Computer Selection.
CPU: Ryzen 7 2700x
I was deciding the parts for this system with upgradability in mind. This was around the time the Spectre and Meltdown family of exploits became public. Intel’s aggressive branch prediction and prefetch was one of the main reasons for their superior single threaded performance. I expected the next generation of Intel CPUs to have a significantly decreased speedup compared to previous generations. Intel also has a history of changing their sockets too soon, as opposed to AMD. They were also reasonably quick to patch x370 for Ryzen 2nd gen support. I might not have to upgrade the motherboard for at least a couple of generation, if AMD’s history is anything to go by. Given I wanted to experiment with sub-ambient cooling later on, getting a CPU with soldered IHS made more sense. The 2700x also came with the beautiful Wraith Prism RGB cooler out of the box.
- 3.7GHz Base
- 4.3GHz Boost
- 105W TDP
Motherboard: Asus ROG C7H
I’m not a fan of over-the-top rainbow flashing RGB lighting, but I believe I can responsibly use just the right amount of RGB to make the system look classy. As much as I hate all of the competing RGB ecosystems causing market fragmentation, Asus AuraSync is the most supported. The C7H is also the prefered board for overclockers like Der8auer. It also had good IOMMU grouping, which might be useful for later, when I use this PC as a virtualization server later.
Features I considered:
- TrueVolt USB: Might be useful for runnig long USB cables for oculus sensors
- Steel reinforced PCIe slots
- 7 segment POST code display
- Boot debug LEDs
- Quality VRMs
- Gigabit Intel NIC
- Tweaker-friendly UEFI BIOS
RAM: XPG Spectrix D40
Ryzen is very sensitive to RAM frequency and latency, because the infinity fabric interconnect runs at that speed. I had to settle for the XPG Spectrix D40 3200MHz 16-18-18 because the Trident Z RGB 3200MHz 16-16-16 wasn’t available. I used 2x16GB sticks.
Graphics card: GTX 1070 FE
I reused the GPU from my old system for this one, hoping to upgrade to the next gen when it released.
- GP104 (Pascal) GPU
- 1920 CUDA cores
- 1506MHz base, 1683MHz boost
- 8GB GDDR5
- 150W TDP
Initially, I used a 1TB Segate Barracuda as a boot drive and a 4TB Segate SkyHawk for my Steam Library. There’s a dedicated 4x PCIe NVME slot on the motherboard, so it would be a shame to not use it. I later bought a 500GB 970 evo NVME SSD. Currently, I have a 250GB boot partition and a 250GB cache for my 4TB HDD.
I got an Antec 750 Edge fully modular PSU. It is overkill for this setup, but might be needed for when I get a second GPU.
The gigabit switch
For now I’m using a TP-Link TL-SG1005D. As of now I have no need for VLANs, QoS or other features. I don’t have an over-complicated home network with weird constraints like TLG. The stuff we had to do to debug and fix his home network deserves an entire other blog post.
I have a strange list of requirements, and a limited amount of hardware to satisfy them with. I needed: a Windows desktop for windows only software and ga...
A couple of weeks after moving into my apartment, I got a 100Mbps connection from Dsouza cable network, some local ISP that I had never heard of before. At f...
For the lat couple of months, I’ve been spending my weekends setting up my home PC, network and other infrastructure. Over this series of blog posts, I will ...
Using NGINX as a reverse proxy for webapps I got a KVM VPS from SSDNodes last week. I wanted to host a transmission seedbox, tapchat IRC bouncer and Jupyter ...
Quickly setting up headless access on linux SBCs like the pine64 This is a quick guide to enabling headless VNC access on the pine64 using USB serial.
My Github Blag I’ll mostly be posting how-tos on things that took me a long time to figure out, in case I need to do them again