Recently, I tried my iRacing / NAS rig in VR with an Oculus Quest 2 that a friend of mine brought over. However, after fiddling with some settings to make it not look like crap, it seems like either the CPU (hopefully fixed here) or the current 1080Ti is holding it back. Though I would love to upgrade to a 30-series Ampere GPU, the new Navi AMD GPUs are actually better at traditional rasterization workloads (at least per dollar). Given the 1080Ti’s performance, it’s actually quite difficult to beat it on any sort of budget. However, really any GPU is hard to come by these days as we’re in the midst of a global silicon shortage. Luckily, I was able to get my hands on an XFX Speedster XICK 319 Radeon RX 6800 Black from Best Buy with 10 windows open, wildly refreshing during Best Buy’s last restocking. Unlike the nVidia GPUs, however, AMD’s have been previously plagued with a reset bug which requires rebooting the host OS when the guest is shutdown / booted up. Combine this with the RX 6800s being quite new, there’s a few complications involved in getting Unraid AMD passthrough running.
Read MoreCategory: Projects
X370 Motherboard PCI / IOMMU Mapping
Since the NAS was going to be a typical tower and in the living room, the overarching goal was to make it also have the functionality of a gaming PC. To get true USB Hot-Plugging will require us to pass through an entire USB controller just like we did the Pascal GPU. We’ve covered the basics of IOMMU groups, and most server / workstation hardware (CPUs, motherboards, and chipsets) would make this pretty easy. However, I put this together out of older hardware I had laying around. Specifically, I have a Zen 1 Ryzen 7 1700 dropped into an X370 motherboard (MSI X370 Gaming Pro). Since all this hardware was made for “consumers”, the designers did not put a lot of thought into how things can be isolated and virtualized. So, the next step I need to take is to map all the IOMMU groups to actual devices on the motherboard.
Read MoreUnraid PCIe and IOMMU Groups
Passing through a GPU on Unraid is usually a pretty easy task. Issues are easily solved as long as it’s in one of the “GPU” / main PCIe slots on most motherboards. There are some issues using it in the primary slot which are easily overcome. I discussed in my unRAID Pascal GPU Passthrough guide. However, for more advanced setups, you’ll need to start passing through other PCIe devices to virtual machines. This starts to get a bit more tricky and the many guides have some shot-gun approaches to solving the problems associated with these advanced setups. In order to maximize system stability, you’ll want to avoid these shot-gun approaches and the pitfalls associated with them. In this post I’ll give you a basic understanding of PCIe and IOMMU groups. Then discuss one of the more commonly touted “solutions” and the pitfalls associated with it.
Read MoreUnraid VM USB Hot Plug
Once you have basic GPU passthrough configured, you can get near bare-metal performance in a VM on Unraid using KVM under the hood. However, one thing that is a little awkward are USB devices. The host, in this case Unraid, owns, initializes, and configures USB devices by default. This gets even more complicated when you consider that Unraid boots off a USB device rather than another drive in the system.
Here we’ll look at how you can get close to hot-plugging USB devices into a VM. In a future post we’ll take it a step further to get near-baremetal functionality just like we did with the GPU.
Read MoreTSP Data Update
The TSP decided to change the way that they make the data available randomly since I originally made the script. The old version of the page looked like this:
It only allowed you to access 30 days at a time, and required more of a human-touch to gather all of the data. In order to navigate this, I had to request the data (and resulting page) 30 prices at a time. To load the whole database, this took a considerable amount of time. Read More
Mutual Fund Scripting
Most of my portfolio is in mutual funds rather than individual stocks. This allows me to diversify a bit more easily without the added cost of trading. Also, it doesn’t open yourself up to as much volatility as ETFs can experience, since they’re subject to the whims of market emotions just the same as individual stocks.
Mutual funds have one very big problem, though: you do not know the share price at which you’re going to be buying and selling them like stocks. With stocks, you list a price you want to buy / sell at and your broker makes sure you pay / get paid exactly that (after taking a commission, of course). You have to buy into mutual funds (slightly different than purchasing a share of stock), and have to initiate it during trading hours, usually. Mutual funds have their prices set (actually called a NAV), some time after the close of the market, however – usually around when people leave for the day.
Setting aside the reasons why this is the case (which I understand and am not arguing with at all), this makes buying into and cashing out of mutual funds relatively risky. One nice thing about mutual funds is that they publish their holdings (at least to some people looking to sell that data). The top 10 are freely available at places like Google and Yahoo!; however, Morningstar displays to users up to 25 (they try to charge for the top 100). You can start to predict what the prices of the mutual funds are going to do based on the holdings did that day. If all of the holdings went up 1%, the NAV of the mutual fund will tend to go up 1%. This correlation is less descriptive of funds which you know less of the total composition (say they had 300 positions total), have a higher turnover rate (buying and selling of their positions a lot), or are leveraged (borrowing in order to buy in extra).
So, I decided to make another script to help me with the intra-day decisions about whether or not to buy or sell mutual funds that day. It will take the mutual fund ticker, grab the holding and composition data from Morningstar, and then will attempt to get the information about all of the holdings and predict a percentage increase. This gives me a rough idea as to whether or not today is a good day to buy into or cash out of mutual funds. I always try to do the buying on low days and the selling on high days (who’d have guessed that, anyway?).
There are some inaccuracies in this, of course. In addition to the ones listed above, there’s also the fact that bond prices / yields aren’t always published individually, so funds have hold bonds aren’t very well predicted. Also, mutual funds only usually publish their holdings quarterly, so as the quarter goes on, the holding percentages might change, but this can only predict based on the data known from the last publishing.
Anyway, like my TSP script, I am hosting and developing it on GitHub: https://github.com/elaske/mufund. I’ve added a bunch of issues describing some of the features I wish to implement in the future, along with the goals of this initial script. Comment on GitHub or here if you have any suggestions!
TSP Data Scripting
I’m a person that likes to keep track of their finances intently, along with someone that likes a lot of data and looking through that data. Unfortunately, these two desires start to fall apart once it gets to my retirement. As a federal employee, I have the “Thrift Savings Plan” for my funded retirement savings. The TSP is great in a lot of ways; for instance, it’s got expense ratios on it’s funds that are an order of magnitude lower than the lowest funds elsewhere (0.027%). It keeps these expense ratios low (along with the expenses to the government) by limiting a lot of things that you might find in other private retirement systems. For instance, we have only 5 funds to invest in, and another 5 “lifecycle” funds that invest in those 5 funds adjusting their allocations automatically.
One of the main things that bugs me about it, though, is that there’s no way to see the data. You get your quarterly statements to see your performance, but that’s about it. Unlike funds that you can find data for on Google Finance, you can’t see your TSP fund’s individual or combined performances during different periods. I can’t see how my retirement funds react as a whole to world news, economic cycles, or even compare it simply to my brokerage account or IRAs. Read More