Clock
This project is to build simple clock using 7 segment displays and a microcontroller.
This is a simple Discord.js bot I made because my fiance likes elephants and I wanted to pratice some node. This querries a simple google custom search engine through the google API. The google search returns 10 results per query, and has a limit of 100 queries per day for free use. A multi teird …
Looking into x86_64 ASM In the x86_64 assembly I was looking for any particularly large instructions that might be sensitive to alignment. To start I found the section of the binary that the decompress all tags function is in. Also the disassembly contains the byte pattern from the inline assembler. asm(“.byte 0x0f, 0x1f, 0x84, 0x00, …
Project Investigation: Why this optimization failed Read More »
This is the code I am looking at optimizing. The assembler code is aligning instructions in the binary. These instructions are aligned by 32+16 bytes. As this is aligning with bytes and not bits, this is not aligning to a word boundary. If this code was aligning to a word boundary then it would not …
I was going to test this project on a raspberry pi running Fedora. However I have had trouble getting the pi setup on my network. I will hopefully get it working in the next few days, however I will shift my benchmarking over to the aarch64 servers for now. Because the provided test and benchmarks …
This build will work on all platforms that I will be testing on. There will be to main builds we will use: First make a build directory under the main directory, and cd into it. The release build will be our main build for benchmarking. It is compiled with “-O2 -DNDEBUG -rdynamic”. cmake ../ -DCMAKE_BUILD_TYPE=Release …
At this point I am wondering if there is even any optimization that I can do. What I want to do is get the compiler to tell me what it is doing. So that I can focus on areas that the compiler is not optimizing. In order to do this I need to learn the …
Project Investigation Part 2: Can I even optimize this? Read More »
The function I want to look at is this: void DecompressAllTags(Writer* writer) { // In x86, pad the function body to start 16 bytes later. This function has // a couple of hotspots that are highly sensitive to alignment: we have // observed regressions by more than 20% in some metrics just by moving the …