Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur

Blog Posts

Deep Learning at the edge - part one

Deploying machine learning in real time embedded systems often comes with the constraint of reducing the latency, the memory footprint and the power consumption while achieving the same accuracy. BUT: in certain applications (e.g. Functional-Safety critical) you need strong guarantees that what your neural network infers is the right thing (i.e. a 20 km/h limitation is not a 50 km/h limitation!). You might think that in order to achieve good accuracy you need as many fractional bits as possible.

Paul Ianas

Improved SSH security

In this technical newsletter we'd like to help you achieve a higher level of security when communicating with your remote Linux servers (AWS EC2 included).

Paul Ianas

Floating point operations: hardware vs software

Depending on gcc/g++ compilation flag (e.g. -msoft-float), the linker will link these instructions to either calls to hardware FPU (x87 on x86 machines), or use user-defined libraries which implement the above-mentioned functions. The only difference between hw versus sw FP operations should be speed, because in sw the same algorithms are applied as in hw.

Paul Ianas

System calls - part one

Definition: a controlled entry point into the kernel. A way by which user programs can execute functions that require a greater privilege. A few words about privileges... In general, each CPU / microcontroller has a set of operating modes.

Paul Ianas

System calls - part two

Some argue that on x86 a syscall implies a context switch... Actually the kernel code runs in two possible contexts:

  • in kernel-space mode, in process context (on behalf of a specific process)
  • in kernel-space, in interrupt context (not bound to any process)
Paul Ianas