Showing posts from July, 2024

The simplest micro benchmark for cupy CUDA containerized in NVidia AI Workbench

NVidia AI Workbench runs inside a containerized environment and I wanted an environment check that verifies the container has access and that docker/podman, the NVidia driver and Workbench are all on compatible versions.   Containerization has no effect on performance. The CUDA code is pretty much a direct pass-through to the card. Environment NVidia AI Workbench One local GPU Windows 11  Docker Desktop Program running in a container built by the Workbench based on the PyTorch/Cuda image Program I access the containerized environment via a Jupyter Notebook visible to the browser on the Windows machine. This is a snapshot of the Jupyter Notebook. numpy_cupy_sort.ipynb Gist It found a problem The program demonstrated that there was a container adapter (or something) mismatch that recently happened.  cupy returned that it had access to the GPU but it turns out that it really didn't and that a Docker Desktop upgrade was needed to fix something driver-related.  The error message was &qu

Analyzing Possible Failure Modes - The Garage Door

We try to prevent or catch failures in all kinds of everyday tasks.  The cat escapes. The dog eats the socks.  Someone leaves the garage door up at night. Failure mode analysis (FMEA) works for all kinds of problems.  We can apply a version of FMEA to the garage door problem and use it as an example that everyone understands and potentially solves an everyday problem. The talk I'm finally getting around to posting the content to this 2022 talk:  Working through all the ways to fix the problem that I don't always close the garage door Talk content These are the contents of the Keynote presentation used in the talk.  See the talk for an explanation. Related This was part of a series of FMEA talks  Blog Articles Throwing down failures Detection and remediation Videos Step 1: Throwing down failures

Decoding common responses

Rating system for meetings, team reviews, code reviews and, disaster war rooms. Bullshit - not true Dogshit - terrible Horseshit - nonsense Apeshit - angry Batshit - crazy The shit - the best Well Shit - disbelief Deep Shit - big trouble Additional meaning in other situations No shit - you don't say? Aint shit - deadbeat Good shit - this is awesome Most of these were pulled from an @threads thread. Revision History  Created 2024/04

Flutter messaging classes and their native platform peers

Communication between Flutter modules and Mobile Native code happens over platform channels.  The docs are all over the place so I created this cheat sheet for the different channel types and their class documentation. YouTube walkthrough video Mobile Native Communication Communication between the Mobile native code and Flutter happens over platform channels. Web communication happens via window messaging. Flutter Channel types There are three native platform channel types. V1 of this application uses the  Message Channel Channel type and Flutter class Description Flutter Native Native Flutter Supports Return Method Invoke method on the other side Yes Yes Via result Message Sends a message to a remote listener Yes Yes Via reply Event Streams and sinks. Events can flow in both directions Yes Yes N/A Channel Implementation Classes Dart/Flutter, Android, and iOS have corresponding `channel` classes for each channel type. The three platform channel implementatio