Build custom applications on Jetson TK1 device

Hi,

Is it possible to run my custom python web application to process the LIVE video on the Jetson TK1 device and access the application remotely thru WIFI network.

Thanks
vijay

That’s a bit vague, but running a python app to process video and communicating through WiFi is fairly common. The part where it becomes impossible to answer whether it is practical is in not knowing what kind of video processing and what kind of bandwidth you need, along with any special requirements you might have (e.g., a half second latency won’t matter for many people, but if it is for piloting a supersonic acme super jet one inch from the ground it might matter).

One thing to do before trying to use the GPU for processing video remotely is to get some sort of VNC type desktop working and see if that works for you over WiFi. I say this because X11 works differently than people might expect when doing remote display. With a virtual desktop the GPU renders to a buffer, and then the buffer is forwarded. Other X forwarding setups where X is required at both ends of the setup imply GPU work is offloaded to the PC and taken away from the Jetson. A VNC style setup avoids this and allows the Jetson’s GPU to always render to its own buffer…the host machine then needs a VNC client and no longer requires graphics to specifically be X11 as its means of rendering.

Thanks for the inputs that was really helpful…

few more question pls,

  1. The device Jetson TK1 seems to be 32-bit all my applications are being developed in ubuntu 64 bit OS using docker. can i deploy and run my docker application from the device

  2. can TKL device store upto 100 GB data

Any compiled language program requires recompiling for the TK1’s architecture (“porting”). You might see this porting target abbreviated in these more or less similar notations: arm/armhf/arm32/ARMv7. Examples of compiled languages: C, C++.

Any interpreted language program depends on the interpreter being arm/armhf/arm32/ARMv7 rather than the program itself being compiled to an architecture. Even if the interpreter is the same version on both architectures there may be features one interpreter has which the other interpreter does not have, e.g., commands to deal with larger addresses, but often this is not difficult to adjust for. If interpreter versions differ, then there will probably be a lot of porting changes needed. Example languages: Python, Java, Perl.

There is actually a bit more to it than the above, but the gist is that the architecture must be supported either at compile time or in the program which does the equivalent of compiling at run time (interpreting). Docker implies a 64-bit architecture, but you have not mentioned if this is 64-bit ARMv8-a/arm64/aarch64, or something else…but assuming it is ARMv8-a/arm64/aarch64 and compiled, then it will need to be adapted and recompiled to run on a TK1. If the program is interpreted, and if the interpreter versions are compatible, then the program might run directly on the TK1 with little or no change…some “tweaks” would likely be needed.

The difficulty of porting from 64-bit to 32-bit might be anywhere from trivial to nearly impossible…it depends on what the program requires in its supporting environment (e.g., libraries linked to).

The TK1 has a total of 16GB of eMMC storage…some is overhead, some is operating system. You can probably assume 12GB of free space without risk. You can add an SD card or external USB hard drive for more space and get far more storage. The TK1 has ethernet, so network storage is also a possibility. Native storage is not capable of holding 100GB.

my OS details:

Architecture: x86_64
OS: ubuntu
kernel: 4.4.0-93-generic
intel core i5-7200CPU @ 2.5GHz

what u suggest in this case ?

I am looking for a portable device with GPU capability and price range within $200 ?

pls suggest wht best can be done

The TK1 is within that price range…if you get module only, you may be interested in a TX1, but you would need a carrier board. There is a nice TK1 module which uses a carrier board and is in DIMM format (same size/shape/connector as a memory module) by Toradex (see https://www.toradex.com/computer-on-modules/apalis-arm-family/nvidia-tegra-k1), but this too would require engineering or purchasing someone’s carrier board. Of all hardware on the market, it seems the Jetson TK1 is the only one which does what you want within that price range (the TX1 would also be in that price range if you exclude carrier board).

The biggest limitation you will find on a TK1 is that it is 32-bit using ARMv7 architecture (software would be arm/arm32/armhf/ARMv7). The CUDA version on 32-bit stops at version 6.5…newer software all runs on 64-bit, so you would have to be sure you can use CUDA 6.5 (or libraries depending on CUDA using version 6.5).