Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Announcements and Chat > General Discussion

Reply
 
Thread Tools Search this Thread Display Modes
Old 10th January 2023, 14:33   #1  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Interesting off-site Projects

Hi guys,

Just came across a couple of projects that other members might be interested in.
You can post any others you might find appropriate in this thread.

EDIT: Projects mostly from here [CodeProject]:- https://www.codeproject.com/

Project:
Small Visual Basic.
https://github.com/VBAndCs/sVB-Small-Visual-Basic

Cut down version of M$ Small Basic with added Visual Basic (VB6 like) similarities. Easy for kids (7 Y.O. and up) and beginners.
RAD language, (Rapid Application Development), for easy and quick program production.

Quote:
Why do we need sVB:

BASIC is famous of being easy to learn, because its syntax is simple and close to natural English. In 2008, MS released Small Basic for kids of 7 years old and above. It was really small, containing only 14 keywords to perform the basic programming instructions like Sub, If, For, While and Goto statements.

Small basic is a dynamic language, as it doesn't declare variables with types. You just assign a value to a valid identifier and SB will declare it as a Primitive variable, which can hold a string, a number, or an array. This makes the language very easy to learn and use for kids.

But, a programming language is not just instructions. It has to have a class library to communicate with Windows. In fact SB comes with a number of powerful libraries, and allow you to supply your own libraries as well. This is where I saw a big issue while trying to teach SB to my nephews: The language is too easy, but using the libraries isn't that easy, especially when dealing with graphics and UI. The PDF book that comes with SB makes it hard, focusing on drawing shapes by using geometric functions (it even contains a fractals sample!)
This is not the best way to introduce programming to kids. A black command window (the TextWindow) is easy but boring, while using vector graphics or drawing using the Turtle on the Graphics Window is amazing but can be quite hard.

The good news is that the Controls class allows you to draw a TextBox, and a Button on the GraphicsWindow, deal with their properties and handle their events. But, unfortunately, the kid has to design the form blindly while adding controls by code, and even worst, the code used to communicate with these controls is verbose, because SB doesn't have the Object type as I explained above, so, you can only store the name of the control in a variable:
image upload
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 5th February 2024 at 16:21.
StainlessS is offline   Reply With Quote
Old 10th January 2023, 14:40   #2  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Project:
CodeProject.AI
https://www.codeproject.com/AI/index.aspx

Quote:
Our Free, Local install Artificial Intelligence server. Any platform, any language.

No off-device or out of network data transfer, no messing around with dependencies, use from any platform, any language.
Quote:
What can it do?

CodeProject.AI Server can currently

Detect objects in images
Detect faces in images
Detect the type of scene represented in an image
Recognise faces that have been registered with the service
Pull out the most important sentences in text to generate a text summary
Remove the background automatically from images
Blur the background of images to produce a portrait effect
Generate a sentiment score for text
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 21st April 2023, 15:42   #3  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Previous post CodeProject.AI updated.
https://www.codeproject.com/Articles...I-the-easy-way
Quote:
CodeProject.AI Server: An Artificial Intelligence server

Think of CodeProject.AI server like a database server: you install it, ir runs in the background, and provides AI operations for any application via a simple API.

CodeProject.AI server runs as a Windows service or under Docker. Any language that can make HTTP calls can access the service, and the server does not require an external internet connection. Your data stays in your network.

Quote:
What's New - 2.1

Improved Raspberry Pi support. A new, fast object detection module with support for the Coral.AI TPU, all within an Arm64 Docker image
All modules can now be installed / uninstalled (rather than having some modules fixed and uninstallble).
Installer is streamlined: Only the server is installed at installation time, and on first run we install Object Detection (Python and .NET) and Face Processing (which can be uninstalled).
Reworking of the Python module SDK. Modules are new child classes, not aggregators of our module runner.
Reworking of the modulesettings file to make it simpler and have less replication
Improved logging: quantity, quality, filtering and better information
Addition of 2 modules: ObjectDetectionTFLite for Object Detection on a on Raspberry Pi using Coral, and Cartoonise for some fun
Improvements to half-precision support checks on CUDA cards
Modules are now versioned and our module registry will now only show modules that fit your current server version.
Various bug fixes
Shared Python runtimes now in /runtimes.
All modules moved from the /AnalysisLayer folder to the /modules folder
Tested on CUDA 12

Please see our CUDA Notes for information on setting up, and restrictions around, Nvidia cards and CUDA support.

If you are upgrading: when the dashboard launches it might be necessary to force-reload (Ctrl+R on Windows) the dashboard to ensure you are viewing the latest version
Quote:
3. Using CodeProject.AI Server in my application

Here's an example of using the API for scene detection using a simple JavaScript call:
Code:
<html>
<body>
Detect the scene in this file: <input id="image" type="file" />
<input type="button" value="Detect Scene" onclick="detectScene(image)" />

<script>
function detectScene(fileChooser) {
    var formData = new FormData();
    formData.append('image', fileChooser.files[0]);

    fetch('http://localhost:5000/v1/vision/detect/scene', {
        method: "POST",
        body: formData
    })
    .then(response => {
        if (response.ok) response.json().then(data => {
            console.log(`Scene is ${data.label}, ${data.confidence} confidence`)
        });
    });
}
</script>
</body>
</html>
Not sure if that means Scene Change detection ? [seems to be on only a single image]
EDIT: Or perhaps it just finds a frame within a clip file.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 21st April 2023 at 15:51.
StainlessS is offline   Reply With Quote
Old 21st April 2023, 19:52   #4  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,255
Quote:
Not sure if that means Scene Change detection ? [seems to be on only a single image]
EDIT: Or perhaps it just finds a frame within a clip file.
It's about scenes as specific environments.
ike: 'in natur', 'on the road', 'at the beach',...
this is usually used to tag/categorize content and based on the scene/environment support object&text detection.
see: https://www.v7labs.com/blog/yolo-object-detection
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 21st April 2023, 20:20   #5  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
ArHa!, thats what it is.
It was the Scene Detection thingy that initially caught my attention.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 9th May 2023, 15:18   #6  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Project:
CaptureManager SDK - Capturing, Recording and Streaming Video and Audio from Web-Cams
https://www.codeproject.com/Articles...ng-and-Streami

Quote:
This article presents my project for capturing of video and audio sources on Windows OS by Microsoft Media Foundation.
In this article, we look at various demo programs showcasing the project. For example: web-cam capturing and viewing via OpenGL rendering, the way of using of Enhanced Video Renderer for rendering of live video via CaptureManager COM server, the way of DirectShow filter development for integrating CaptureManager SDK into 3rd party webcam applications (like Skype or Zoom).
Quote:
The most interesting demo programs are listed below:

WPFVirtualCamera - DirectShow filter for integrating CaptureManager SDK into 3rd party webcam applications (like Skype or Zoom)
WPFStreamer (live video and audio streaming on Facebook (SSL encrypted connection: Facebook requires all live video streams to go over RTMPS, or the Real Time-Messaging Protocol (RTMP) on a TLS/SSL connection - this will help protect streaming content via encryption, thereby ensuring a greater level of data integrity) and YouTube sites) - Freeware version.
WPFRTSPClient - Freeware version
WPFRtspServer - Freeware version
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 24th November 2023, 17:35   #7  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
ESP32 DIY GPS Tracker
https://www.codeproject.com/Articles...IY-GPS-Tracker

Quote:
DIY GPS Location Tracker
An ESP32 and a GPS module are used to build an IOT device that records location, date, and time to on-board flash memory. A WiFi connection allows the recorded data to be accessed and transferred from the device.

Introduction

This article describes the building of a tracking device using an ESP32 and a GPS module. The GPS module has an antenna which determines location using satellites such as GPS, Glonass, Galileo, and Beidou. An ESP32 supplies power to the module and receives location information from it.

At one minute intervals, the location is recorded to a location log file in the flash memory. Each log entry contains a date and time stamp as well as the latitude and longitude and speed the module is reporting.

Periodically, when the tracker is within the range of a pre-programmed WiFi access point, the location log file can be examined or uploaded for storage or further processing.


Maybe of interest to some

####

Artificial Neural Network C++ Class
https://www.codeproject.com/Articles...plusplus-Class

Quote:
Artificial Neural Network C++ class with two use cases: Counter and Handwritten Digits recognition
This article provides a simple C++ class without any complications in the mathematical calculations of the backpropagation algorithm. Two use cases have been provided to facilitate code usage.
Quote:
Background

This article is not to explain the scientific side of (ANN) Artificial Neural Networks. It provides a simple C++ class without any complications in the mathematical calculations of the backpropagation algorithm. If you have good experience about ANN, you can skip to the next section, else, you can revise this very good resources about ANN. I have provided two use cases to facilitate code usage as much as possible.

Introduction to Neural Networks
Neural Network Applications
Backpropagation Mathematics
Backpropagation Algorithm

Introduction

Today, (ANN) Artificial neural networks has become dominant in many areas of life, whether an industry or at home. ANN enables machines to learn and to simulate human brain to recognize patterns, and make predictions as well as solve problems in every business sector. Smartphones and computers that we use on a daily basis are using ANN in some of its applications. For example, Finger Print and Face unlock services in smartphones and computers use ANN. Handwritten Signature Verification uses ANN. I have written a simple implementation for an Artificial Neural Network C++ class that handles backpropagation algorithm. The code depends on Eigen open-source templates to handle Matrices’ mathematics. I made code simple and fast as possible.


Use Cases

Quote:
Simple Counter

Neural network takes an input in binary (3 bits) and generates an output equals to input + 1. Then output is taken back as an input to the network. If input number equals to 7 (111 in binary) output should be 0. Network is trained using backpropagation algorithm to adjust network's connections weights. Training process takes about 2 minutes to minimize error between desired output and actual network output.
Quote:
Handwritten Digits Recognition

Handwritten recognition is one of the most successful application for Artificial Neural Network. It is the "Hello world" application for Neural Network study. In the previous use case, I use a shallow neural network, which has three layers of neurons that process inputs and generate outputs. Shallow neural networks can handle equally complex problems. But, in Handwritten Recognition, we need more accuracy and nonlinearity. Therefore, I have to use Deep Neural Network (DNN). DNN has two or more hidden layers of neurons that process inputs.
####

EDIT: Also maybe this of interest to the security conscious of you.

How to Enable Bitlocker Hardware Encryption on SEDs [self encrypting drives]
https://www.codeproject.com/Tips/537...ryption-on-SED

Quote:
This article is a guide on how to activate Bitlocker hardware encryption on self encrypting drives in Windows.
Introduction

This article is a guide on how to activate Bitlocker hardware encryption (aka IEEE1667 or Microsoft eDrive) on SEDs (self encrypting drives) in Windows. I have been using SEDs since May 2016 (my first drive was a Crucial MX200) and at that time, there wasn't too much documentation about how to activate flawlessly hardware encryption in Windows. I wanted to publish this guide then, but I was "too lazy". I only posted some hints on forums till now when I decided to write this article.
Background

SEDs aka Self Encrypting Drives are particular type of hard disks which have onboard a crypto processor which encrypts on the fly every block of data written from the computer to the drive controller and, vice versa, decrypts every block of data read from the drive for the computer, in a transparent way to the users, except for an initial provisioning phase. Basically, each SED has a disk encryption key (DEK) that is set at the factory and stored safely inside the crypto processor. The disk uses the DEK to encrypt everything it writes and to decrypt everything it reads.

SEDs then also use an authentication encryption key (AEK) provided during the boot of operating system either by the user (for Windows through either a password or PIN) or by the Trusted Processor Module (aka TPM) to protect its DEK. SEDs have a mode referred to as auto-lock mode, e.g., when a disk is powered off, they get automatically locked; when later the disk is powered on again, the SED requires a valid AEK in order to read (and decrypt) the DEK needed to unlock the disk and perform any read and write operation. If the SED does not receive a valid authentication key, the data on the disk cannot be read. The auto-lock mode also helps to protect the data when disks are accidentally or intentionally removed from the system (disconnected lively from a SATA cable of a computer in order to get connected to another SATA cable in a different computer).




NOTE, the Crucial MX500 2.5" SATA SSD's have AES-256 bit harware encryption capability.
Amazon, 500GB=£33, 1TB=£44, 2TB=£87, 4TB=£160. [ https://www.amazon.co.uk/dp/B003J5JB12 ]
I recenty got a 2TB [EDIT: actually 4TB], was not aware of the hardware encryption capability [I usually buy the cheaper but slightly slower BX500 without encryption]
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 26th November 2023 at 19:13.
StainlessS is offline   Reply With Quote
Old 24th November 2023, 21:45   #8  |  Link
wonkey_monkey
Formerly davidh*****
 
wonkey_monkey's Avatar
 
Join Date: Jan 2004
Posts: 2,492
Quote:
Originally Posted by StainlessS View Post
EDIT: Also maybe this of interest to the security conscious of you.

How to Enable Bitlocker Hardware Encryption on SEDs [self encrypting drives]
https://www.codeproject.com/Tips/537...ryption-on-SED
The performance-conscious should look up how to turn off Bitlocker.
__________________
My AviSynth filters / I'm the Doctor
wonkey_monkey is offline   Reply With Quote
Old 25th November 2023, 16:27   #9  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Yes of course, but perhaps of use if you're a government minister with a habit of leaving your laptop on a train.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 25th November 2023, 16:50   #10  |  Link
wonkey_monkey
Formerly davidh*****
 
wonkey_monkey's Avatar
 
Join Date: Jan 2004
Posts: 2,492
A government minister on a train?
__________________
My AviSynth filters / I'm the Doctor
wonkey_monkey is offline   Reply With Quote
Old 25th November 2023, 18:06   #11  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Quote:
Originally Posted by StainlessS View Post
Yes of course, but perhaps of use if you're a government minister with a habit of leaving your laptop on a train.
Or a slave ehm I mean an employee of some corporation with a laptop under group policy...

But yeah, bitlocker software encryption cripples performances.
Luckily, though, hardware encryption exists and in that case the delay is mitigated to the point of being seconds.

A few years ago, a friend of mine got his laptop stolen.
The thieves broke into his house via the window the day he left with his wife to go on vacation.
That could have very well happened to me.
Although I wouldn't mind about the hardware, I would mind about the software, so, on Linux, I do encrypt everything with BTRFS fscrypt. Using hardware encryption on Linux means that the delay is negligible (we're talking ms and it's unnoticeable).
Unfortunately in this day and age, we have to protect ourselves from this...
FranceBB is offline   Reply With Quote
Old 26th November 2023, 19:10   #12  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
It is my understanding that hardware encryption on eg nvme SED's would provide a significant speed hit (Especially PCIe 4.0/5.0),
but as SATA SSD's being slower, additional small overhead (in comparison) is of little concern.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 26th November 2023 at 19:17.
StainlessS is offline   Reply With Quote
Old 26th November 2023, 21:28   #13  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Correct. SSD are so fast nowadays that they can very easily saturate the ~ 600 MB/s available on the Sata III line, so adding hardware encryption and decryption won't really matter much.
This is of course very different for NVME devices that can reach even ~ 1400 MB/s and would therefore be limited by hardware encryption/decryption when accessing a file as it might not be fast enough to cope with it.
FranceBB is offline   Reply With Quote
Old 25th January 2024, 14:59   #14  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
New Project,
Quote:
H264 Encoder DirectShow Filter in C# on AMD GPU
Article describes how to make H.264 Video Encoder DirectShow Filter in C# using Advanced Media Framework (AMF) SDK API from AMD.

Introduction

Each GPU vendor provides their own capabilities for usage of their products. In this article I show how to implement H264 DirectShow video encoder filter by using Advanced Media Framework (AMF) SDK from AMD. Implementation of this filter done in C# and it is based on BaseClasses.NET library which described in my previous post (Pure .NET DirectShow Filters in C#)
https://www.codeproject.com/Articles...harp-on-AMD-GP

EDIT:
Updated project,
CodeProject.AI Server: AI the easy way.
https://www.codeproject.com/Articles...I-the-easy-way
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 25th January 2024 at 15:03.
StainlessS is offline   Reply With Quote
Old 5th March 2024, 21:21   #15  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Project: Windows & Linux
IP Radar 2 - Real-Time Detection and Defense
https://www.codeproject.com/Articles...on-and-Defense
GitHub:- https://github.com/ClarkFieseln/IPRadar2

Quote:
Protect your privacy against malicious network activity and policy violations
This article discusses what you can do to protect your privacy against malicious network activity and policy violations (exploits, port-scanners, advertising, telemetry, state surveillance, etc.) when even the most widespread tools seem to fail this goal.
Quote:
Introduction

With increasing levels of online data surveillance, user activity tracking and user profiling, threats to online data security and user privacy continues to worry most of "us", normal users. But, can we do anything to protect our privacy when even the most widespread tools seem to fail this goal? The answer is "yes".
Quote:
map

This is one of the main features of IP Radar 2. That is, visualization of the network activity on the world map, using Google Maps. The output file map.html is generated periodically while capturing, or only once when reading offline from a capture file.
clickMe


Gonna give this one a try.

EDIT:
Quote:
History

22nd May, 2020: Initial version
23rd February, 2021: Broken links repaired
24th February, 2021: New code uploaded (new useful feature: node-ID added to find IPs in list easily!)
27th February, 2021: .zip file with code now includes CPOL license
5th March, 2021: Added link to AC4QGP
25th June, 2023: Added new .zip file with version 1.1.0 (update to Python3.9 and bug corrections) and demo video
3rd Februarry, 2024: Added links to the "Linux" version of this tool (PyPi, GitHub) which provides more features and is more mature
6th February, 2024: Added warning about fee on Google Maps API for development
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 5th March 2024 at 21:29.
StainlessS is offline   Reply With Quote
Old 5th March 2024, 22:15   #16  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Quote:
Originally Posted by StainlessS View Post



I have a GPS too, but for a slightly different reason.
You see, I have a GPS USB module connected to my desktop at home. People would think: "hold on a second, a GPS connected to a stationary desktop PC? What for? It's never gonna move!".
But this is because people generally think about GPS as something used to understand where we are.
How can we blame them? After all, it is called Global Positioning System.
Anyway, what's interesting about GPS is that each and every satellite ever sent in orbit has an atomic clock inside so that it's gonna be able to know the time all the time regardless.
GPS satellites are broadcasting such a signal as time in UTC.
When you use a computer you generally use NTP (Network Time Protocol) and according to which server you're connected to you're gonna get a stratum.
Those connected to an atomic clock are stratum 0, then, those servers tell the time via NTP to other servers which become stratum 1 and then they tell to other servers and they become stratum 2 and so on and so forth up until stratum 10 after which a server can only acquire the time but not tell the time to other servers (although some older versions allow up to stratum 16).

Anyway, generally when you use public NTP pools you get at best servers at stratum 2 or 3 telling you the time, thus making you become stratum 3 or 4. Even if you manually set the time to be synced with the Google NTP servers, they're stratum 1, so you would become stratum 2.

But... what happens if you connect directly to the satellites that have an atomic clock inside? Well, you're connected directly, so you become stratum 1 and that's exactly what I've done in January 2023.


FranceBB is offline   Reply With Quote
Old 5th March 2024, 22:28   #17  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
In a couple of tablet/laptop whotsits that I have, I have a PAYG SIM card, without ever any credit.
I did this so as to have system able to update clock / location from 4G mast of the not-in-credit service provider.

I also have it in settings to auto update time from network (or something like that).

No idea if it works as desired, I've never checked it, but it cant do much harm.

(Of course you would need to enable DATA on SIM every now and then, just to access the mast access point, but not all of the time, takes battery).
(Would also auto update from WiFi when available - I dont need atomic clock accuracy, just wanna know what day it is.)

EDIT: Even without credit, SIM cards work, if only to access the service provider website to topup your credit.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 5th March 2024 at 22:33.
StainlessS is offline   Reply With Quote
Old 9th March 2024, 03:43   #18  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
No idea if this is of interest to anybody,
https://cloudblogs.microsoft.com/ope...-using-webgpu/

Quote:
ONNX Runtime Web unleashes generative AI in the browser using WebGPU
In-browser machine learning (ML) enables web applications to execute machine learning models entirely client-side in the browser. As a key player of on-device AI, it has garnered significant interest thanks to advantages in privacy protection, enhanced portability, as well as cost and latency savings by eliminating client-server communication. Nevertheless, the rise of large generative models brings a challenge for in-browser ML, as executing these models demands increased computational power and memory resources.

ONNX Runtime Web is the web-inference solution offered in ONNX Runtime.
This blog is thrilled to announce the official launch of ONNX Runtime Web featuring WebGPU in the ONNX Runtime 1.17 release. This innovation unlocks new possibilities for executing state-of-the-art sophisticated models like Stable Diffusion Turbo directly in the browser. It is particularly advantageous in scenarios where CPU-based in-browser ML falls short of meeting performance standards. This post will delve into how ONNX Runtime Web equipped with WebGPU accelerates in-browser machine learning and guide the users on leveraging this capability.
Quote:
Accelerate Segment Anything encoder by 19 times

To demonstrate the power of WebGPU on the performance of ONNX Runtime Web, we developed a demo using the Segment Anything model, incorporating both WASM EP and WebGPU EP. Meta has introduced the Segment Anything Model, an advanced image segmentation technology aiming to transform the landscape of computer vision. With Segment Anything, users can efficiently identify and isolate specific objects within an image through a few straightforward clicks. As depicted in the screenshot, on a laptop with NVIDIA GeForce RTX 3060 and Intel Core i9, ONNX Runtime Web with WebGPU accelerates the Segment Anything encoder part by 19 times and the decoder part by 3.8 times.

A glance at ONNX Runtime Web with WebGPU

WebGPU introduces a modern web API to enable web developers to use the underlying system’s GPU to carry out high-performance computations. Compared to WebGL, WebGPU is capable of handling more complex machine learning workloads in a more efficient way with advanced features such as compute shader. Its support for half-precision (FP16) reduces GPU memory usage and bandwidth requirements while accelerating arithmetic. WebGPU promises inferencing more efficient and scalable machine learning applications directly within the web browser by harnessing GPU power for parallel computation tasks.

ONNX Runtime Web is a JavaScript library to enable web developers to deploy machine learning models directly in web browsers, offering multiple backends leveraging hardware acceleration. For CPU inference, it compiles the native ONNX Runtime CPU engine into the WebAssembly (WASM) backend. By doing that, ONNX Runtime Web can effectively run common machine learning models and it has been widely adopted by various web applications such as Transformer.js.

To address the challenges posed by large and complex generative models in browsers, which demand greater computational and memory resources beyond the capabilities of CPU execution, ONNX Runtime Web now enables the WebGPU backend. Moreover, Microsoft and Intel are collaborating closely to bolster WebGPU backend further. This includes implementing WebGPU operators for broader model coverage, enabling IOBinding to save GPU-CPU data copies, adding FP16 support for improved performance, memory efficiency, and more.
Quote:
As of now, Stable Diffusion Turbo stands out as the most efficient AI technology for image generation.
With the power of WebGPU, it is now possible to execute Stable Diffusion Turbo directly in the browser, achieving results within one second on an RTX 4090. Here is the end-to-end example of running Stable Diffusion Turbo in the browser with ONNX Runtime Web with WebGPU. Transformers.js, a popular JavaScript library for running Transformers directly in the browser, has been powered by ONNX Runtime Web with WASM backend, and now a majority of its models can be accelerated by WebGPU backend. We are collaborating with Transformer.js team to officially unveil WebGPU accelerations through ONNX Runtime Web.

Get started with ONNX Runtime Web

WebGPU has been included by default since Chrome 113 and Edge 113 for Mac, Windows, ChromeOS, and Chrome 121 for Android. Ensure that your browser is compatible with WebGPU. You can also monitor support for other browsers. Additionally, for inference using mixed precision (FP16), please note that FP16 support for WebGPU was introduced since the recent Chrome and Edge releases (version 121).

The experience utilizing different backends in ONNX Runtime Web is straightforward. Simply import the relevant package and create an ONNX Runtime Web inference session with the required backend through the Execution Provider setting. We aim to simplify the process for developers, enabling them to harness different hardware accelerations with minimal effort.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 9th March 2024 at 03:49.
StainlessS is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 09:42.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.