#mainly cus my actual one is a waste of space
Explore tagged Tumblr posts
Photo
Tag list (ask to be added or removed): @carrionsflower @statichvm @risingsh0t @simonxriley @tommyarashikage @kanos @bbrocklesnar @confidentandgood @unholymilf @florbelles @thedeadthree @shellibisshe @roofgeese @aezyrraeshh @faerune @tekehu @jackiesarch @minaharkers @sergeiravenov @carlosoliveiraa @rosenfey @greenecreek @queennymeria @heroofpenamstan @alexxmason @tethrras @jamessunderlandgf @a-treides @solasan @bigbywlf @delzinrowe @fenharel @imogenkol
ROB YOUNG (uncharted)
Happy Birthday Boss! [August 12th]
#self reblog*#oc: rob young#uc oc#my ocs#my edits#happy birthday you legend!!#miss my fictional god father#mainly cus my actual one is a waste of space#will be making an edit for him later!#slowly recovering from a v tiring weekend tho🥲#good thing I don’t have to go anywhere lmao#anyway wish this geeza a happy birthday!!#he’s an old man now#so he and sully would just chill on a boat drinking and smoking#living his best old man life#the kids will come annoy him later tho
46 notes
·
View notes
Text
A sweet gift
Thanks to her stay at the Apex games some of the memories Wraith though gone were slowly come back to her, a part of her that sometimes still shine through her serious facade… Renee Blasey. While the legends were happy for her it was painfully obvious that her boyfriend was the most exited whenever she got a memory back, even if it was something small like remembering a certain place she used to visit or a food that she liked. It was always uncertain of what would trigger a memory to came to her, in this case it was just some cupcakes Natalie and Makoa baked for the group that day, the sweet scent of the mix while it was cooking bring a smile of joy to Wraith’s heart, this did not escaped Elliott’s sight and he took a mental note.
A couple of days passed since that and he had decided that he (with some help) would make Renee happy.
-Hey, Wattson fin-n-al- I found you-
-Bonjour Elliott, do you need something? –
She could tell by his stuttering that he was really excited for something
-Yeah, I need your help to bake Renee some delicious cupcakes-
-I thought you were the “Master Chef” here mon amie-
-Well I am an incredible chef but I’m also a horrible baker, besides It is thanks to you and the big guy that Renee re-discovered her liking for cupcakes… so, would you help a bro out? -
After hearing this Natalie’s eyes started to sparkle with joy and happiness, she was surprised that Wraith liked sweets, and was determined to help Elliott with this.
-Of course, I will-
-You my friend have my grat-grati- thanks-
They didn’t waste time and went straight into the kitchen to begin, Natalie texted Octane to keep Wraith busy while they worked, and the horror began. Elliott did not lie when he said he suck at baking, he’s “cupcakes” came burnt or soggy, Natalie has seen this man prepare (with literally one hand tied to his back) a five-star dinner for all of them yet he was struggling to safety bake anything edible.
-You weren’t joking huh?
-That’s why I called you here, besides, aren’t we some having fun here? -
-I will admit, seeing you almost burn this place twice is funny but if you do this a third time Ajay will kill you-
-Yeah, let’s just decor your batch and call it a day-
They both laugh when Mirage managed to décor the cupcakes with marvelous precision even after his baking disaster; they were space themed, he says that a starry night always reminds him of Renee, Natalie felt so touched by his words and with good reason this was not something coming from “Mirage” this was from Elliott Witt’s heart.
Wraith’s phone rang, she quickly picked up and wasn’t surprise by his answer
-Hey babe, how is the prettiest lady in the galaxy doing? -
-Hey El, I would say “I don’t know her” but that would only earn me an argument with you so, I’m fine what’s up? –
-Hehe funny, I’m g-great, fantastic, say are you busy? –
-Well not really, me and Octane just finished eating and were on our way to the base, need something? –
-You could say that, yes, I have little s-surprise for you, meet me at my room when you get here-
-Got it-
-Nice, love you-
-I-I… love you too-
She was still getting used to saying it out loud, Elliott never push her to say it but she felt like it was necessary to show him that she did care
-El got me something -
-20 bucks says he’ll be naked and covered with whipped cream-
That little joke actually got a muffled laugh out of her mainly because that would be a strong possibility with Mirage on hand, Octane did notice a slight blush on her cheeks which was something new to him, he was happy for her nonetheless. Once back Renee went straight into Mirage’s room so receive her gift
-Oh, h-hey, you are h-here-
She knew that every time Elliott got her something, he’ll be anxious from not knowing if she would like the gift even with the fact that she has really loved every single one of them, still cute though, Renee saw Elliott approached her with a small deep blue box, he hand it over to her and both of them sat on his bed; when she opened it she let a surprised gasp, then happily reached for one of the small yet detailed pastries inside, just in time for Mirage to finally let out the breath he was holding for a while
-Wow, Ellie, these look amazing-
-I’m glad you like them so far, bet the flavor will amaze you as well-
And dam was he right; the pillow-like texture, the glorious taste of vanilla and the sweetness of the blueberries it had all melted together in such a pleasant way inside her mouth, despite the little excess of frosting, she loved them.
-Wow, these are amazing Elliott, I kinda feel bad for eating them when the look so precious-
-I knew you would like them, t-totally no doubts-
-You were scared, weren’t you? -
-You have no idea how fright-fri- scared I was, m-maybe they were too s-sweet, for all we know you could be allergic to b-blueberries, maybe I didn’t put enough effort in the decoration plus I wasn’t sure if you liked Makoa’s rather than Nat’s cu-
Renee put a little bit of frosting on his nose and kissed it to stop his rambling, she was amazed of how insecure he could be at times, but he did look cute when his insecurities were removed by her, he just let a tired laugh and rested his head on her shoulder; he picked Wraith up and placed her on top of his lap, Renee put the box aside and wrapped her arms around his neck kissing his cheek once she got closer.
-So… did I got you good? –
-Yes, El, you got me good-
With one last triumphant sigh he holds her closer to him, she hides under his neck, kissing him there before grabbing his face to give him some sugar of her own; Miraged noticed how good her lips tasted thanks to the cupcake she did feel him smiling against her lips
-I think you are enjoying this a little more than I expected El-
-What can I say, you have always been irresistible, but now you are overwhelmingly sweet-
His comment got a genuine, yet tiny, laugh seeing her this happy is something he is grateful to experience fist hand.
-I love you Renee-
-And I love you, Elliott-
17 notes
·
View notes
Text
Investigating Intel’s Compiler
I don’t think there’s been a more controversial programming tool to ever be released than Intel’s own C++ compiler. The biggest controversy, for those who don’t know, basically involved Intel using their compiler to slow down their competitor’s chips. Whether that’s true or not, is what I’ll be going into in this post.
Why?
A lot of tech enthusiasts are, for good reason, very skeptical of Intel. Even a surface-level dive into the semiconductor industry reveals some troubling skeletons in Intel’s closet, including several anti-trust violations in both America and Europe.
But, times do change, and so, I’ve decided to investigate whether Intel’s compiler is still used as a weapon against their rivals, AMD in particular.
How?
Testing will actually be really simple: I just need to compile my test programs twice: Once with Intel’s compiler, and once with Visual Studio. I would use QTCreator given how lightweight it is, but my installation seems to be corrupted. That and Intel’s compiler has Visual Studio integration, so that will help keep things consistent. No need for me to write a batch file just to compile the tests.
By switching between two different compilers, one from Intel and the other vendor-agnostic, the various data points can be used to come to a conclusion. If Intel’s compiler is deliberately slowing down code that runs on my AMD hardware, then the difference will be very clear.
Once the tests have been compiled, I’ll run them, record the time, and then come to a conclusion. But note that I will not average the scores from different tests. This is because it’s simply unnecessary, and will make the data more murky. Especially given some programs will rely on certain algorithms more than others.
The Tests
In order to test this, I thought it too imprecise to find a program online, compile it, and run it. While that would provide a very realistic workload, I don’t think it would reveal too much about Intel’s slowdown methods, if they utilize any. In particular, 7-Zip, while free and open source, would be terrible for this because it’s mainly I/O bound. Any slowdown wouldn’t be noticed too well, and partially masked by either of my drives.
So instead, I decided to write my own suite of tests. Unfortunately these are all single-threaded tests, as multithreaded testing would be too difficult to do right. That’s not really the point anyway: If the compiler does indeed use tactics to slow down AMD chips, then even a single-threaded test will be able to reveal them.
These are the tests I wrote and why:
QuickSort. Reason being, it's a fairly simple algorithm with fairly predictable performance.
Counting Sort. Another sorting algorithm, but this one relies very little on branching. In fact, a proper implementation has no if statements at all. May not be a great indicator of real-world performance loss, but it’s a simple test, so I decided to throw it in.
Binary Tree. This one isn’t very indicative, but basically: It takes random data, builds a binary search tree with it, then locates a random element.
Note: In order to ensure that the testing is fair, the test will have to be rather large. This won’t be a 5-second thousand-element sort, no. Think 1 million elements. The exact testing parameters will be detailed below.
Test Machine
Of course, it’s important to contextualize the hardware on which these tests are done. This entire post would be a big waste of time if I was still rocking an i5-7600K. So below are all the relevant parts (and some irrelevant ones):
CPU: AMD Ryzen 5 1600 @ Stock
Cooler: AMD Wraith Spire (cu*)
RAM: 16 GB DDR4-3000 Team Vulkan-Z @ DDR4-2933**
Mobo: ASUS TUF GAMING B450M
* Has a copper slug. Just in case you were curious
** Otherwise stock. Also, F for my underutilized RAM :(
Testing Methodology
For each compiler, each test will be run 10 times, and the time taken averaged out. No major programs running in the background, not that it’ll impact anything. I/O, such as loading/generating data to be sorted, will not be counted towards any timed portions.
Every time the compiler is swapped, settings are checked to ensure fairness, and
There will be three tests: One with Visual Studio set to Debug mode, one with Release mode with standard O2 optimization, and one with Release mode and optimizations disabled.
The Results
Well, I wasn’t expecting what I found, in all honesty. First, Debug mode, as that’s what people will most likely test with at first.
Just as a reminder, this is running on AMD hardware. And I have triple-checked these numbers, and they’re accurate. No funny business. I even tested the Visual Studio compiler before installing the Intel compiler.
Maybe there’s shenanigans going on in Release mode + Od?
Well, quicksort is slower on Intel now. So it would seem that the Visual Studio compiler does more optimizations even when you tell it to not do anything special.
I do find it curious that Counting Sort takes longer with Release mode, but that could just be per-run variance. Overall, I’m not too concerned.
And finally, the most disappointing, Release mode + O2 optimization:
Unfortunately, I couldn’t get the Visual Studio compiler to produce anything useful despite being given more than enough time. It just sits around, twiddling its thumbs on a single thread. Eventually it complains about a lack of heap space, despite my system having 16 GBs of RAM. So the Intel compiler is the only one I was able to test.
But wait, there’s more!
So, being the super-paranoid programmer I am, I was thinking there had to be a catch. So I went ahead and threw the Intel-compiled code into HxD, a hex editor. It’ll let me see the individual instructions that make up the program, and tell me what an instruction means in x86.
Initially, I just looked for the instruction 0x0FA2, as that is the CPUID instruction in x86. CPUID lets programs see what hardware they’re running on, as it will return a string depending on which vendor made it. The string is vendor-dependent, so AMD could make a CPU that has an Intel vendor ID (though I doubt software would like that).
Intel has “GenuineIntel”, and AMD has “AuthenticAMD”, though at one point they had “AMDisbetter!”. There’s other x86 vendors that have their own respective vendor strings.
Anyway, I dug through an executable or two, didn’t find anything significant. Even dug through the Visual Studio compiled code. Weirdly, it does seem to call CPUID later on in the program, towards the end actually. I have no idea why it would do this.
That is, until I was editing this blog post. I noticed that the gains going from Debug to Release Od were rather small, so I went ahead and threw that code in particular into HxD. Look at what I found:
There’s two things that stick out:
1. The mangled GenuineIntel vendor ID string.
2. The CPUID call that’s in the general area.
So at this point, I’m getting a little paranoid, so I go back and look at the other results. Turns out I did find more damning evidence and I was just being a tunnel-visioned idiot. This code is from the Debug compilation:
What the hell is that AuthenticAMD vendor string doing in Intel-compiled code? HMMM... Honestly I’m not sure. The code runs significantly faster than the Visual Studio code, so it doesn’t seem to be sabotage at first glance.
So I looked at the compiled executable sizes. And as compiling Visual Studio for Release is difficult, I just went ahead and only compiled for Debug.
Turns out the Visual Studio compiler is the bigger one, at 727 KBs versus Intel’s ~323 KBs (note: don’t have the exact number, forgot to jot it down).
So at this point I’m just... confused. What is going on? So I crack open the VS-compiled executable in HxD and... well...
I found the exact same string. Different place, but the same string nonetheless. Not only that, the same code surrounds it. So it’s not Intel-exclusive. None of what’s here is exclusive to Intel’s compiler, unless there’s some crazy conspiracy that both Intel and Microsoft are into. Which I highly doubt, given that would be a massive conflict of interest for Microsoft. Imagine, if Visual Studio’s C++ compiler was sabotaging AMD hardware. That would be a massive blow to their own consoles, given a lot of them may just be compiled with Visual Studio.
And for the record, there are no other instances of AMD’s vendor ID string anywhere in either compiled executables. I would mention it if there was.
Final Word
No, Intel’s compiler is not running deliberately slow code on AMD hardware. Or at least, as far as it seems. In fact, it seems to run faster code overall than Visual Studio’s own compiler.
Although I wouldn’t recommend using Intel’s software suite, given it has been found that their Math Kernel Library does indeed run intentionally worse on AMD hardware. I may do my own experimenting on it and see if I can replicate the results, but for now I’m just done with experimenting with Intel’s software. I’m going back to tinkering with Vulkan.
If you want to see the code I used to test this, here it is: https://github.com/Elusivehawk/IntelPerformanceTest
0 notes