(Local) AI, Please Reason about Code

“Reasoning” models have become popular as a way to expand the capabilities of large language models (LLMs). Such models take more time “considering” a prompt and iterating it through the model several times, with the goal of mimicking how a human might go about solving a problem by breaking it down into steps. I tried the reasoning QwQ model on the coding problems from my previous blog posts (1,2). Quite funny and elucidating; I will quote the replies in full as they are worth reading.

Continue reading “(Local) AI, Please Reason about Code”

(Local) AI, Please Write some Code

My previous blog post in this series tested the ability of a range of large language models to analyze a piece of C code and determine what a mystery function did. That was interesting and entertaining, but possibly not a particularly “fair” test of the models’ capabilities. Most of time, I think people use “AI” to help write code, not to understand some tricky piece of algorithmic code. Thus, I turn the problem around and ask the models to write code for the algorithm I previously asked them to analyze.

Continue reading “(Local) AI, Please Write some Code”

(Local) AI, Please Explain This Code

Continuing my exploration of what a local AI model can do, I decided to test them on the task of code analysis. It would be so nice to have an AI model that is tuned and trained on a particular tool or programming system, and that can be distributed for users to run on their own on their local machine, server, or cloud VM. Avoiding the need to run and charge for a custom cloud service and ensuring confidentiality and availability.

Updated 2024-12-12 with Llama-3.3-70B

Continue reading “(Local) AI, Please Explain This Code”

More Exploration of (Local) AI Models

In my previous blog post about the Intel AI Playground, I tested it by asking it to draw cars. In this post, I share some more exploration of these local AI models and their limitations. Turns out that cars are easy, other things not so much…

Continue reading “More Exploration of (Local) AI Models”

Hi Local AI, Draw Me …

I recently built a new desktop computer, featuring an Intel ARC 770 graphics card (just to be different). The card is supported by the Intel AI Playground, which is a software package that makes it dead easy to run AI/large language models (LLM) locally on my GPU. I was curious as to just what this could do, as compared to the big AI models that run on cloud servers.

Continue reading “Hi Local AI, Draw Me …”

Reversing out of Reverse

The Intel Simics simulator version 7 removed a long-standing feature from the simulator framework. Reverse execution is no longer available. In its place, in-memory snapshots were introduced, which arguably offer most of the benefits at a lower implementation cost. What happened? I’ve been asked about the reasoning behind the chance on several occasions since I left Intel. I’d like to share my perspective on the decision, as it highlights the challenges of turning an idea into a robust, shippable feature.

Continue reading “Reversing out of Reverse”

Subscription Software Revisited: SnagIt

The trend to make everything into a subscription service instead of a pay-once use-forever model is well-established. I have defended it for professional software, and I am a mostly happy user of Microsoft365. Still, I must admit that I felt mildly annoyed when my favorite screen capture program, SnagIt, announced they would be switching to a subscription-only model.

Continue reading “Subscription Software Revisited: SnagIt”

That’s Odd: How iCue and Windows 11 Ruin Simics Performance

While working on some screenshots for an upcoming blog, I noticed something that something was off with the performance of Simics on my Windows 11 laptop. The CPU load did not quite go as high as I am used to – typically, compute-intense run should get close to 100% processor load using a single host thread to execute the simulation. Instead, I got to no more than about 50%, which was decidedly odd. I also had a screenshot from a few days earlier that showed some 90% CPU load. Turns out the culprit was a combination of factors, including the Windows 11 scheduler and the Corsair iCUE software pack.

Continue reading “That’s Odd: How iCue and Windows 11 Ruin Simics Performance”

Paste as Plain Text

Windows PowerToys is a fantastic set of utilities for Windows, and it just got better with the addition of “Paste as Plain Text”. Just like the mouse pointer locator I blogged about before, it is a small thing that you get used to and immediately notice if it is absent.

Continue reading “Paste as Plain Text”

Setting the Font in Windows 11 “Terminal”

I finally got updated to Windows 11 on my work machine, and suddenly I have to figure out how to use Windows 11 for real work. The redesigned start menu is terribly bad compared to the Windows 10 variant. What is nice though is the new Terminal app, along with the quite pleasing Cascadia font. However, I found the default size of Cascadia to be a tad big. Which lead to the question: “just how on earth are you supposed to control the font on this thing?” The font adjustment is probably the least logical I have ever found, and without some help from the Internet I would never have figured out. So here is how you do it.

Continue reading “Setting the Font in Windows 11 “Terminal””

Finding the Cursor on Windows

In the last year, I noticed that my Windows machines started to grey the screen and show a highlight around the cursor when I accidentally hit the CTRL key twice. At first, I had no idea what was going on, but then I figured out it was connected to CTRL. So I assumed that this was a brilliant new feature added by Microsoft in some recent Windows update (to both Windows 10 and 11, thank you very much!). However, then I tried to help a colleague find the function and realized it was missing on his machine. What was going on?

Continue reading “Finding the Cursor on Windows”

Was this a UTF-8 WTF?

Today I observed something very odd in Powerpoint. I was pasting in some text from the Simics command-line interface into a text box in Powerpoint to show the output of some commands. Commands whose output relied on box-drawing characters to produce nice tables. But for some reason… it did not work in Powerpoint. Weird.

Continue reading “Was this a UTF-8 WTF?”

Minimum Viable (Replacement) Product – The Teams Example

During 2020 and 2021, Intel switched from using Microsoft Skype for Business (also known as Lync) to Microsoft Teams as the primary internal calling, chatting, and conferencing tool. While (finally) Teams has turned into quite a decent communications tool, the transition started a bit too early from a feature completeness perspective. Microsoft in essence gave us an enterprise Minimum Viable Product (MVP). Not a proper Replacement Product (RP). Teams left out many rather important and useful features, degrading the user experience and value, and making my life harder. I don’t think that was particularly well handled. I can understand it as a product manager, but as a user, I don’t like it all.

Continue reading “Minimum Viable (Replacement) Product – The Teams Example”

Microsoft Windows memset Optimization – Stores are Free

I recently stumbled on a blog post called Building Faster AMD64 Memset Routines, written by Joe Bialek of the Microsoft Security Response Center (MSRC). The blog describes his efforts to improve the performance of the Windows kernel memset() function, across all sizes of memory to set. The reported optimizations are quite fascinating, and could be summed by avoiding branches even at the cost of doing redundant stores. Basically, stores are free while branches are expensive.

Continue reading “Microsoft Windows memset Optimization – Stores are Free”

Adjusting to Work-from-Home: Remote Live Simics Training

In the current world-wide lockdown due to Covid-19, many things that were done in-person in the past have to become virtual. The Simics® New User Training that we run at Intel and with our customers and partners is no different. In normal times, we run in-person classes around the world, but that is not an option right now.  Thus, we shifted to running remote live classes as a substitute for the time being. This blog shares some of my experience from running remote live classes.

We changed the cover page of the Simics training to symbolize the change.
Continue reading “Adjusting to Work-from-Home: Remote Live Simics Training”