Posts

Showing posts from 2024

NVidia Broadcast fix for - No available cameras - Restarting the windows service

Image
NVidia Broadcast, on Windows, uses your GPU to improve your PC's audio and video streams for recordings, meetings, or other purposes.  NVidia Broadcast sits between your Microphone/Camera and the audio/video capture component of whatever proam you are using.  I described here how NVidia Broadcast can use the GPU to make it look like you are always looking at your camera  when recording. NVidia Broadcast sometimes can't get access to your microphone or camera when they are already being used  by some other program.  Recently I had a different problem where NVidia Broadcast couldn't get access to my Brio Camera even though no other program was currently using the problem. I stopped and restarted my NVidia and Logitech tools to no avail. It turns out one of the NVidia Windows services needed to be restarted.  There was some problem with the instance of the service that was running and restarting it fixed the problem. The best video I found is this one by Spook...

Ordering pages in a coding challenge scrambled my preconceived notion about "natural ordering"

Image
We have a notion that there is a natural order of things.  I'm talking about ordering, and sorting, by convention as a mental aid or for product reasons.  Everyone is familiar with ordering products by weight, pieces by size, and names by alphabetical order.  We are so used to some types of ordering that it seems like the natural way when there is nothing natural about it. A common example is the "order of assembly", the order of parts installed onto the device.  The reason for the order on the direction sheet may not be immediately obvious.  The order takes into account the ease of assembly or the reliability of putting it in at that point in the cycle. This caused me to waste over an hour during a recent programming challenge while implementing an arbitrary set of ordering rules. Eventually, I realized that the notion of order is arbitrary and that I could change the standard to fit my problem space.  Let's go to the programming challenge. An example from...

Leveraging Brev SSH credentials to plug local tools into Brev managed instances

Image
Brev authentication and 'brev shell' create credentials we can use with other tools, like NVidia AI Workbench, to let them SSH into Brev instances. This is useful for those needing something beyond the canned models or provided Jupyter Notebooks YouTube short description of the SSH credentials and host info Revision History Created 2024/11

The Brev GPU/CPU marketplace topology that can be seen by users

Image
A quick explanation of the pieces of Brev visible to external users and how they fit together.  YouTube: A simplified view of the Brev GPU marketplace that are touched by users Revision History Created 2024/11

Start to finish running AI Workbench project in cloud GPUs with Brev

Image
 I wanted to run an ML project in a bigger environment than I have in my homelab.  I don't have any cloud accounts but can rent GPU capacity via the Brev GPU/CPU marketplace. I just needed to get it there. The project itself is fully containerized and available on git as an AI Workbench project.  This means I just needed to install the AI Workbench server code on a Brev rented GPU instance and then attach to that server over the provided network tunnel.  My local AI Workbench can then manage and run my project remotely from my Macbook. All the steps Some of these steps will be automated in future NVidia AI workbench releases.  Use this diagram to follow along in the video. Video Revision History Created 2024 11

Build Test Adapt Check - When will I know if it works

Image
Starting with a good foundation puts us in a position to step into a build/test/check/adapt iteration loop that drives an expanding and improving product or experience. The key is to figure out how to measure success from the customer, organization, regulatory or privacy, and other non-functional requirements perspectives. We want to optimize the Build - Test - Adapt - Check  cycle in order to make good changes with a short cycle time. Hopefully, I'll add the content of this talk in the future.  Until then you have the diagram and the video. Video Here is the video where I go over the diagram. Revision History Created 2024 11

Walking through the NVidia AI Workbench's Kaggle competition kernel example project

Image
The NVidia AI Workbench team has created a prototypical workspace for those wanting to participate in Kaggle competitions while running on their own hardware.  NVidia created a workbench project,  NVidia Competition Kernel on GitHub , that integrates Kaggle's GPU container images along with Jupyter Notebooks that interface with Kaggle. The Kaggle images are the same ones they use in their data scientist environment. The project is configured to participate in the continuous, training, Digits competition where you train a model to recognize handwritten numerical digits. NVidia created the project in a way that can be used in other competitions of the same class.  Three Notebooks Downloads the Training and Submission data Creates a model and trains the model using the training data. The notebook tunes the model against the training data. Then, it evaluates the Test data to generate what it thinks are the matches. The matches are written to a file. Uploads the CSV file conta...

You really know it only once you can teach it

Image
Teaching someone else makes clear what you really know.  You fully understand it when you can explain it to others. Teach others lays bare the wholes in your knowledge and where your assumptions were enough "to get by". Image by Adobe Revision History Created 2024 11

Take bed motion into account when printing narrow parts

Image
This is a bit embarrassing but I printed a chainsaw cosplay blade the other day and it went great.   Then I re-sliced and reprinted.  The 2nd print set failed when one of the pieces lost adhesion. It fell over .  Part of the reason that happened is because I laid out the pieces aligned such that the narrow axis of the part was in the same direction as the bed movement.   I then re-sliced oriented so that the parts lined up in the direction of motion and it printed without problems. Rafts and supports are great but sometimes you can help yourself by picking the right part/axis alignment. Video Short Revision History Created 2024/10

Telling people "silence is acceptance" when we ask for input and they never reply

Image
Everyone needs to provide input or feedback when we are spinning something up, troubleshooting something, or digging in. They should raise disagreements, tune the plan, or otherwise get involved because eventually, it will become their plan. To achieve the best results, we need to provide enough time, the appropriate venues, and the means for providing that feedback and participating in the decisions. Once provided, it is on them to speak up if they have any issues. Sometimes we have to make it explicit to get people to pay attention. "You have agreed to this path if we don't hear from you by that date. Your silence in this matter is acceptance." Opting out of the results is not an option. Video Other There may be alternative views depending on the environment but that is for another time. Silence is Acceptance Silence is Apathy Silence is Antipathy Silence is Avoidance Revision History Created 2024 11

4 easy ways to GIT in AI Workbench and Jupyter Notebooks (0.86.20 edition)

Image
I struggled initially to manage my ML and data science projects when running them in the NVidia Workbench. The built-in GIT interface was basic  and fine for basic operations but I found it frustrating for branching and merging.  I ended up using tools that ran inside the Workbench Container instead of the Workbench itself. Workbench SVC support continues to improve but I use the other tools discussed while watching Workbench improve. Here are the 4 ways I've explored. The AI Workbench UI This NVidia AI Workbench interface is a work in progress.  The latest version adds git diff  capabilities, a big improvement.  This UI is still simple and intended for basic file commits.  Use something else if you need advanced git control or merge functionality. Jupyter Notebook Extensions There are a few different Jupyter Notebook extensions. Some, like jupyterlab-git,   add themselves to the Notebook UI toolbar. Here is the left gutter interface for extension:...

Shelling into a containerized Jupyter Notebook environment directly from the notebook

Image
Somehow I've missed that Jupyter Notebooks provides a shell into the container with a simple mouse click.  No more scrambling to the command line looking for the container name and then running a container connect. Starting the terminal via Launcher Using the terminal for command line GIT Demonstration Revision History Created 2024/11

Deleting a specific site's cookies from Chrome

Image
Having problems with a specific website that used to work?  Does the site work when visited in incognito mode?.   Deleting the cookies for just that site  might fix the problem without removing info for other sites.  Warning:  This removes any "remember me" or persistent session state for that site. Chrome > Settings  This page is  chrome://settings Privacy and security > Third-Party Cookies This page is  chrome://settings/privacy See all the site data and permissions This page is  chrome://settings/cookies Delete the Cookies for an individual site. This page is chrome://settings/content/all 1. Find the problem site by scrolling or searching by domain name Ex: foocompany.com 2. Delete that site's cookies by pressing on the trash can.  Do not hit Delete all data Fini Retest the web site for which you deleted the cookies. Revision History Created 2024/11

Learning about ML training with the NVidia Workbench Example Kaggle Competition Kernel

Image
Kaggle runs different machine learning or data science competitions. You can participate using their containerized environments or by coding locally. NVidia simplified working locally, or in your own cloud, with an AI Workbench-compatible  example Kaggle competition kernel . Their project contains everything needed to download competition data from Kaggle, run train/test cycles, and then upload the results for evaluation. I love this dockerized project because it lets me play in a competition sandbox on my local machine with no local configuration changes to my development machine The  Handwritten Digits Recognizer  competition is an open-ended competition trainer. Kaggle provides images of handwritten digits. You train against the training dataset and test against the testing data set. Then run your trained model against the candidate digits of the competition submission set and upload the results to the Kaggle competition. The  NVidia Workbench example Kaggle ...

The value of technical conferences can vary widely based on their intent and how you attend

I was recently whining to the "home budget office" about being unable to justify personally paying the entry fee for this year's re:invent. AWS evolves so quickly that I feel obsolete after being heads down for a year not running my technical radar against their continual announcements. I wanted to use the conference as an info dump to stay relevant to keep future options open. Would the information boost and brain stretching be worth the cost? The main question when thinking about attending a conference is the "information density"/"cost" ratio. Are there enough immediate takeaways to make it more than a technical vacation? The default large vendor conference attendance pattern is easy but has low information density. This attendance pattern isn't justified if it is all I do. Attending the Keynote and the large talks can all be done at home. Thousands of re:invent sized event attendees watch the Keynote remotely anyway because there isn't a...

Upgrading a PC was more of a learning experience than I expected

Image
Some people buy computing power for self-training or self-edification projects. Others rent computing power. I like owning the gear I work on. I purchased a desktop to be used as a gaming machine, a development system, a containerized workload machine, a Data Science machine, and a Machine Learning platform. I didn't understand that it would turn into a series of hardware upgrades bound by PC architecture constraints. This was a great learning experience but not the best raw dollars investment from a pure cost/capabilities point of view. The 3 years of upgrades cost $1200. I saved some money purchasing previous-generation hardware. Buying current-generation hardware upgrades would cost $1900.  I could have stopped anywhere on the path. Apple wasn't a player in the gaming, M/L, or GPU market when I made my purchase. Apple has caught up for most of my use cases with its large shared memory architecture and performant CPUs. A Macbook might be the simplest approach for someone want...

My Windows software development ecosystem is complicated

Image
Modern development is surprisingly complicated.  My personal software development environment is suffering a severe case of urban sprawl.  While working on some Container IAC scripting for ML and the cloud, I had to pop into a Linux environment. This environment map made me realize that I have a crazy set of different specialized sandboxes. Software systems continue to grow and become more complicated. Software Engineering platforms growing right alongside them. YouTube https://youtu.be/67i43rBkk1c Why this page exists This page exists as a link root for the video and to make it easy to refer to this diagram. Revision History Created 2024 08