Tuesday, May 9, 2017
Saturday, April 22, 2017
OpenCV
Open Source Computer Vision is a library of functions, designed for computational efficiency with a strong focus on real-time computer vision applications. Having written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, so it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform.
It has C, C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS.
Deployed uses span the range from stitching street view images together, detecting intrusions in surveillance video, monitoring mine equipment, helping robots navigate and pick up objects, detection of swimming pool drowning accidents, checking runways for debris and inspecting labels on products in factories on to rapid face detection.
~ Wiki
Saturday, March 18, 2017
Tuesday, February 7, 2017
OpenCL
Open Computing Language is the open standard for cross-platform, parallel programming diverse processors found in personal computers, servers, mobile devices and embedded platforms. It greatly improves the speed and responsiveness of a wide spectrum of applications including gaming, scientific, medical software, professional creative tools and vision processing etc...
To put it in a nutshell, the open standard for parallel programming of heterogeneous systems.
~ Wiki
Sunday, January 1, 2017
CUDA vs OpenGL
CUDA is a parallel computing platform API, which extended the usage of GPU (which was otherwise used only for graphics processing) for general purpose processing. But the scope is limited to CUDA-enabled GPUs manufactured by NVIDIA only and does not work on different GPUs by other manufacturers. CUDA platform is designed to work with C, C++ and Fortran programming languages hence easier to code straight to GPU. Compatible with most standard operating systems.
e.g. Identify hidden plaque in arteries, Analyze air traffic flow and Visualize molecules etc...
OpenGL is a graphics library, which provides set of API that makes use of GPU (hardware-accelerated) to render graphics faster - focus is specific to rendering on GPUs. Supported on essentially every GPU. Required advanced skills in graphics programming. It is language and platform independent.
e.g. CAD, Virtual reality, Flight simulation and Video games etc...
Friday, December 9, 2016
CUDA
Compute Unified Device Architecture is a parallel computing platform and API to use a CUDA-enabled GPU for general purpose processing (GPGPU), which leads to dramatic increase in computing performance by harnessing the power of the GPU.
The CUDA platform gives direct access to the GPU's virtual instruction set and parallel computational elements to execute compute kernels. Supports OpenCL programming framework.
~ Wiki
Friday, November 4, 2016
OpenGL
Open Graphics Library (OpenGL) is a low level abstract API to interact with graphics processing unit (GPU) to draw 2D and 3D graphics and is a cross-language, cross-platform API typically used to achieve hardware-accelerated rendering, which is faster over software rendering.
OpenGL deals with only rendering and provides, no APIs related to input, audio or windowing.
OpenGL deals with only rendering and provides, no APIs related to input, audio or windowing.
~ Wiki
Wednesday, October 12, 2016
Synchronization Primitives
Critical section, Mutex, Event, Semaphore and Waitable timers are the different available synchronization objects on windows.
Critical Section
Synchronizes threads (/allows one at a time) to have an access to a shared resource with in a process that it is created in and hence cannot be accessed across processes - limited scope. The remaining primitives have got system wide scope and so can be accessed across processes too.
Mutex
As the name indicates, mutually exclusive, so if one thread gets an access, all others will be on wait (or restrained from accessing) until the first one relinquishes - allows one thread at a time as if the critical sections does but it can be accessed across processes or network boundaries.
e.g. Toll gate (one vehicle per ticket)
Event
Mutex, upon relinquishing, causes to release one thread from the wait to have its turn among all bunch of threads, whereas event releases all the waiting threads in one go. Event signals (/notifies) all the waiting threads when a current thread is done its job.
e.g. Traffic Signals.
Semaphore
It maintains a count between zero and some maximum number, which indicates how many threads can access the shared resource simultaneously. It means one can restrict the no. of accesses to a resource. The count is reduced every time a thread gets an access to semaphore and is incremented every time a thread releases the semaphore. When the count reaches ZERO, no more threads can access the resource. The semaphore state is set to signaled when the count is greater than ZERO and non signaled when it is ZERO.
e.g. Movie tickets
Waitable Timers
Notifies one or more waiting threads that a specified time has arrived. A waitable timer object is a synchronization object whose state is set to signaled when the specified due time arrives. There are two types of waitable timers that can be created: manual-reset and synchronization. A timer of either type can also be a periodic timer.
Saturday, September 10, 2016
Political Satire
Here comes another, the question was about Trump's plan to defeat ISIS. Matt Lauer (interviewed him in the Commander-in-Chief forum) quoted Trump's response of convening top General, who will have 30 days to submit a plan for soundly and quickly defeating ISIS, said, "The plan, you've been hiding this whole time, asking someone else for their plan?" to which, Trump said, when he does come up with a plan that he likes and perhaps, it would be agreed with or might be not. So, he might love, what general would come back with. Matt Lauer asked him further, if he does have, his own plan? to which, he said, he had a plan and a very substantial chance of winning to make America great again - not a convincing answer, at all.
"He has a plan, he has not come up with but if General brings him a plan that is similar to the plan he does not have, he may go with that plan, which he cannot tell us about because it is a secret plan he does not have, to make America great again", summarized by Stephan Colbert, the whole context in his Late Show.
Tuesday, August 30, 2016
Political Satire
The host reacting to Donald Trump's recent appealing to black voters that they do have poverty, no good schools and no jobs, what the hell, do they have to loose, if they would try something new, like him, summed up, "You're already on fire, so you may as well shoot yourself in the head".
- The Late Show with Stephen Colbert