Understanding Caffe code for open source development - caffe

I am trying to understand caffe code code (both the C++ and the GPU part) as I want to start contributing to it but I am having a hard time since I could not find a documentation and I do not know what modules to read first. It would be very helpful if someone can give me some directions as to how to proceed and what tools should I use for development.

Related

How to create a new system or board to be emulated by QEMU

I am new to QEMU, but to support a system modeling project, I try to figure out how to emulate a new ARM microcontroller(M33 based) SOC which is not on the supported system list. I have checked on the QEMU documentation: https://qemu-project.gitlab.io/qemu/about/index.html but was not able to find directions to construct and add a new system model. I would appreciate very much if someone can point me to the right documentation, or suggest steps I can follow to generate the new model for emulation.
I would highly suggest using Renode rather than Qemu as it's better suited for microcontrollers and it's well documented and actively maintained on GitHub.
There is no documentation for how to write new machine models for QEMU. The best advice is to look at the source code for an existing machine type that seems similar to the one you want to add. Avoid looking at machine types that have been added to QEMU a long time ago -- they are often written in an older style or using older APIs which are no longer recommended for new code.
As a very rough rule of thumb, you should assume that a new machine model is about as much effort as porting an operating system to that new hardware. (Roughly, a device model is about as much code as a device driver.) Depending on how much functionality you need, you may be able to leave some or many devices in your SoC unimplemented -- the absolute minimum is usually something like a UART and a timer. You'll need documentation of the SoC (technical reference manual or similar, with detailed descriptions of the devices down to the register level).
(Out of curiosity, what is the M33-based SoC?)

Bluetooth Low Energy: Issues using WinRT API

I want to read characteristics from a service using WinRT API for BLE. Ihad some working code, but in my last question (Bluetooth low energy characteristic access only works once) i was told my API was too old and wont work on every PC. My issues now are:
I can't get the sample code working. Research on this issue didn't give me answers, so I'm asking here. In the image you can see part of the code and some error messages.
The code doesn't seem to read characteristics, but I'm really unsure how to read them with this new API.
You can take a look at the code here: https://github.com/urish/win-ble-cpp/blob/master/BLEScanner/BLEScanner.cpp
Im using Visual Studio 2019 and i have installed UWP, WinRP C++, and everything else I think I need.
Thanks in advance

Load Assembly Sources into IDA

I have a large codebase written in assembly that I need to maintain.
Exploring the existing code is tough with text editor's syntax highlighting being the only helping tool.
I was considering to use IDA tool to assist with this task. It has many nice features for exploring assembly code. So I downloaded the free 5.0 version for evaluation.
Unfortunately, I am unable to locate an option that provide the ability to open an assembly source file. All the "open" options do is to dissasmble binaries, but this is useless to me as I already have the source code inclding all the comments and human readable symbols.
It is hard to believe that a tool with so many features lacks this basic capability. So what am I missing here?
IDA, as stated at its website, is a Disassembler. It was developed to find out what a program does WITHOUT the assistance of the source code, not the other way around. Why should anyone try to employ the complex and time-consuming techniques available in IDA to discover what a binary does if all they have to do is take a peek at the original code?
IDA is NOT a development tool, it is a reverse-engineering tool. You should look for an Assembly IDE for the task you seek to complete. Maybe RadASM provides what you are looking for.

How can I use GPU with Java programming

I am using CUDAC all these days to access the GPU. But now my guide asked me to work with Java and GPU. So I searched in Internet and found Rootbeer is the best option for it but I am not able to understand how to run a program using 'Rootbeer'. Can some one tell me steps for using Rootbeer.
Mark Harris from Nvidia gave nice talk about the future of CUDA at SC14. You can watch it here.
The main thing that may be of interest for you is the part where he talks about programming languages and especially Java. IBM is working on CUDA4J and there are some nice plans about Java 8 features especially lambdas to be used for GPU programming. However, I am not a Java user and I can't answer your question regarding Rootbeer (besides the taste) but maybe CUDA4J will be something that suits you. Especially, if you know how to write CUDA C and need a solution backed up by a company like IBM.

What I need to read/analyze in order to understand how QEMU emulates supported network devices?

I would like to analyze how QEMU emulates the supported network devices reading the source code. Also I would like to share with me your opinions about what background is needed to understand QEMU's source code. Please suggest to me some good books or online sources for the surrounding topics that one has to learn in order to achieve that(I suppose Device Driver, Processor Specification etc are needed?). Also if you could tell me about the programming level that one should have in C (as the source code is written in C) that would be nice.
I have already looked at the QEMU's web site and what offers mostly refers on how to use QEMU and configure it.
For basic introduction to qemu and its networking functionalities:
What's a good source to learn about QEMU?
To get started with source code
original qemu paper
qemu-internals
http://www.ecs.syr.edu/faculty/yin/Teaching/TC2010/Proj4.pdf
https://wiki.aalto.fi/download/attachments/41747647/qemu.pdf