Just Get the Right Tool!

We recently repaired a fence in our back yard. Not very exciting, but it provides a good case study in how to think about getting the right tools for the job. Or not getting the right tools. And the trade-offs inherent in improving the tools vs just getting a job done with what you have at hand. Which is something all software developers should have sympathy with.

Continue reading “Just Get the Right Tool!”

Delivering AI-Based Solutions is not Always Easy

One of the nice properties of delivering software that users install on their own machines is that once the software has been built and shipped, the cost of running it is handed over to the user. The cost per installation and per user is minimal in terms of compute load on the developing company. Of course there are costs for things like support, but that is different. However, having the customer provide the compute resources is not necessarily that easy when it comes to AI-based setups.

Continue reading “Delivering AI-Based Solutions is not Always Easy”

Teaching a Class at Uppsala University

In the first quarter of 2024, I did a short stint as a teacher at Uppsala University. I taught the class “platform-spanning systems” (PSS), which is a fourth-year/masters-level course for engineering and computer science students. It was fun and rewarding to be back at the university, and I probably learnt as much as the my students.

Continue reading “Teaching a Class at Uppsala University”

“RISC-V in Practice” – Computer and System Architecture Unraveled Event Three

On Wednesday, March 13, we had our third CaSA, Computer and System Architecture Unraveled, meetup. Same place as the previous, the 25th floor of the Kista Science Tower building, thanks to the kind sponsorship of Vasakronan and our collaboration with Kista Science City. The theme this time was “The RISC-V ISA in Practice”, with two speakers named Björn. Another great event!

Continue reading ““RISC-V in Practice” – Computer and System Architecture Unraveled Event Three”

“Packet Networks are not Socket Science” – Computer and System Architecture Unraveled Event Two

On Wednesday, November 22, we had our second CaSA, Computer and System Architecture Unraveled, meetup. Same place in Kista as the last time, the 25th floor of the Kista Science Tower building, thanks to the kind sponsorship of Vasakronan and our collaboration with Kista Science City. This time, the theme was networking – but not at the socket level. Per Holmberg presented how his team used “micro sleep” for power management in line-rate network processing, and Hans Brandberg talked about the Precision Time Protocol. Another great event!

Continue reading ““Packet Networks are not Socket Science” – Computer and System Architecture Unraveled Event Two”

The first Computer and System Architecture Unraveled Event in Kista – Great Speakers, Great Fun!

On the evening of the last Wednesday in September, we had our first CaSA, Computer and System Architecture Unraveled, event. CaSA is a meetup in Kista (Sweden) for people interested in computer architecture, system architecture, and how software and hardware interact down towards the lower levels of the stack. The topic for the inaugural event was “Core Count Explosion: A Challenge for Hardware and Software”, and it was great in some many ways!

Continue reading “The first Computer and System Architecture Unraveled Event in Kista – Great Speakers, Great Fun!”

RI.SE AI Day – More on LLMs (and some)

The Swedish research institute RI.SE hosted an “Artificial Intelligence and Computer Science day” (AI and CS day) last week. RI.SE has a long tradition of hosting interesting open houses, both as RI.SE and in their previous guide as SiCS. The day was a mix of organized talks in the morning, and an open house where RI.SE researchers showed off their work in the afternoon. Most of the AI discussions were related to large language models (LLMs), but not all. I got some new insights about LLMs in general and using LLMs for coding in particular.

Continue reading “RI.SE AI Day – More on LLMs (and some)”

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”

ChatGPT and Code

In my previous blog post about ChatGPT and Simics, I tested it on its knowledge and abilities with a fairly niche subject. Not unsurprisingly it did not do all that well. However, one area where ChatGPT appears to really work well is when dealing with program code. This seems more practically useful as well, especially as a generator of starting points and boiler-plate code. It can also sometimes do a decent job explaining code, subject to quite common bizarre mistakes and errors. Update: Part 3, a critique of ChatGPT has been published.

Continue reading “ChatGPT and Code”

DVCon Europe 2022. Verification, System Simulation, and People!

The 2022 DVCon (Design and Verification) Europe conference was back in physical form at its usual venue at the Holiday Inn München. It was a great conference, and just like at the 2022 DAC people were very happy to be back in person.

Continue reading “DVCon Europe 2022. Verification, System Simulation, and People!”

Notes from our DVCon Europe 2022 Tutorial

I presented a tutorial about the “verification of virtual platforms models” at DVCon Europe last week. The tutorial was prepared by me and Ola Dahl at Ericsson, but Ola unfortunately could not attend and present his part – so I had to learn his slides and style and do my best to be an Ola stand-in (tall order, we really missed you there Ola!). The title maybe did not entirely describe the contents – it was more a discussion around how to think about correctness and in particular specifications vs implementations. The best part was the animated discussion that we got going in the room, including some new insights from the audience that really added to the presented content.

Updated: Included an important point on software correctness that I forgot in the first publication.

Continue reading “Notes from our DVCon Europe 2022 Tutorial”

Elektroniktidningen Magazine Article about DML

The November 2022 on-paper magazine from Swedish electronics news site Elektroniktidningen features an article I wrote about the Device Modeling Language (DML). Among many other really good articles.

Update: The article is now available online in HTML format.

Cover of Elektroniktidningen 11/2022
Continue reading “Elektroniktidningen Magazine Article about DML”

Testing what the User will See (and why it might not work out)

The other day, I checked out the web interface to the database of in-patient care diagnoses run by Swedish Socialstyrelsen. On first opening the site, it looked broken and unusable – the text was basically unreadable, mixing giant numbers with strange- looking regular characters, lines of text overlapping each other, and a general sense of being totally chaotic. That is not what you or I would expect from an official site of a government entity. They have no reason to play games with the look of the site. So how come it was all that broken?  Didn’t they test the site properly under all circumstances?

Continue reading “Testing what the User will See (and why it might not work out)”

A Study of Cognitive Biases in Software Development

I recently read a few articles on cognitive biases, decision making, and expert intuition from the field of management research. Then an article popped up from the Communications of the ACM (CACM) dealing with cognitive bias in software development. The CACM article is a small field study that serves up some interesting and potentially quite useful conclusions about how to think about thinking in software development.

Continue reading “A Study of Cognitive Biases in Software Development”