18 ms·
I have a Jetson nano. It's a nice thing for what it is, and the price. But, the software misses the mark by a lot. It's still based on Ubuntu 18.04. Want pyth
by chunkyks 6y ago
I have a Jetson nano. It's a nice thing for what it is, and the price.
But, the software misses the mark by a lot. It's still based on Ubuntu 18.04.
Want python later than 3.6? Not in the box. A lot of python modules need compiling, and the cpu is what you'd expect. Good for what it is, bad for compiling large numbers or packages.
They run a fancy modern desktop based on the Ubuntu one. Sure, it's Nvidia, gotta be flashy. But that eats a quarter of the memory in the device and make the SOC run crazy hot all the time.
These aren't insurmountable issues, they just left a bad taste in my mouth. In theory I only have to do setup changes once, but it's still a poor experience
- t-vi 6y agoI run Debian (mostly) on it. Seems to work well for me. Compiling PyTorch is a bit of a nuisance at 4GB, but it worked. One issue I had was that TRTorch wanted bazel to build and I couldn't bring myself to install that (and Java), so I made up some quick and dirty CMakeLists.txt and it worked well. But I must admit I don't see the 2GB model as a better value than the $100 4GB one, especially with shared CPU/GPU.
- riffic 6y ago18.04 is a sensible release to ship, considering that 20.04 only came out in April.
- ageitgey 6y agoFWIW, I got a review unit and it ships with a much lighter desktop environment (LXDE) this time and is has a swap file enabled by default. I guess that was needed to ship a 2GB version, but overall it seemed a little better thought out. They also include a wifi dongle in the box. It still only has Python 3.6, but OpenCV and numpy are pre-installed correctly this time so you don't have to compile them which is an improvement.
- my123 6y agoYou can update it to Ubuntu 20.04 pretty easily. (using a Xavier as a desktop with that) If you don't need CUDA, you can outright use regular Fedora, which uses nouveau. (no reclocking issues or such on Tegra)
- chunkyks 6y agoIf you don't need CUDA, then save money, heat, and support issues associated with a second-string product and just get a rpi4. The entire point of the Jetson is that there's a non sucky GPU that can do AI at the Edge.
- amelius 6y agoPerhaps we would be better off if NVidia just made GPUs for the RPi ...
- geerlingguy 6y agoThey are trying to purchase ARM, so I wonder what that means for Mali...
- chunkyks 6y agoI did switch mine to LXDE, but it was a faff to do and took ages. I imagine the only way to make this thing slower is to swap to an SD card. I'm not doing anything with mine that involves OpenCV, I didn't realise one of its flagship examples was also messed up in the box. Oh! And I just dug out my script to rebuild if I need to. I forgot a few more annoyances: * tensorflow isn't installed by default, and it's not obvious how to do the install because you have to specify NV's repo: pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow * openai gym won't work unless you specify archaic version 0.15.3, there's a buggy interaction between it and NVidia's X11. * lots of packages need installing that should really have come by default, or were broken by default [eg numpy]
- odensc 6y agoDo you know who I could contact to request a review unit? (if you can share ofc - email in bio) I have an open-source Jetson-related project that I think the new model could be useful for.
- ageitgey 6y agoEmail me (info in bio) and I'll see if I can help
- FrojoS 6y agoJust curious, any guess why it doesn't come with the latest Ubuntu and Python pre-installed?
- chunkyks 6y agoNVidia don't see the point. There are a few forum threads where NV respond "why do you even want that" or "you can get ubuntu 20.xx from a third party".
- FrojoS 6y agoThen why pre-install anything? I'm not in the field, but I would think that a lot of people would want to run there Python CV code on it. Or is it, becaue they want you to use CUDA?
- chunkyks 6y agoBecause if you don't have an offering that'll make it do something interesting OOB, it's unlikely anyone would buy it. [bootstrapping from true scratch is typically a nightmare for hobbyists] I shouldn't be quite so negative; NV did put in a lot of effort building up the development kit. ARM Builds of CUDA, drivers, etc. Repos with packages for the job. Tutorials for common tasks, etc. They're really within a hair's breadth of an excellent OOB experience, but fell at the last hurdle.
- colejohnson66 6y agoThe raspberry pi didn’t/doesn’t ship with anything and people bought/buy that by the millions
- ed25519FUUU 6y agoIt’s very easy to install any version of Python using pyenv. I would be careful not to change the system Python in 16.04 because it will probably mess up apt.
- amelius 6y agoYes, NVidia should stop tying their Jetson hardware to specific Ubuntu releases. Instead they should release drivers that work with any Linux distribution (for example Debian, which is now broken because of USB issues).
- jcelerier 6y ago> Want python later than 3.6? Not in the box. The more I use linux (and I'v been for almost 15 years), the more strongly believe that using what the Linux distros provide as a development toolchain is an antipattern. Use separate toolchains with SDKs separate from your /usr instead. > Good for what it is, bad for compiling large numbers or packages. at worst you can docker run -it aarch64/ubuntu on your desktop and compile your stuff there.
- Yajirobe 6y agou can use virtual environments for that
- giancarlostoro 6y agoIn the case of 'Python Virtual Environments' you'd still have to install another version of Python which is non-trivial with Debian based systems without causing some sort of collision, unless you download the binaries to /usr/ or other bin location as suggested.
- TYPE_FASTER 6y agoI like to use pyenv for this purpose, as it "virtualizes" Python versions by installing them locally as you mention. Then you just point each virtualenv at the Python binary for the version installed via pyenv. pyenv + virtualenv + virtualenvwrapper have greatly reduced Python dependency issues for me.
- giancarlostoro 6y agoA bunch of programming languages do a little bit similar like Node has Node Version Manager or nvm, I think Go has GVM, Rust just has Rust Up, they usually install in your home folder and let you swap between versions globally, I've yet to have to do this as I usually spin up a VM if I know I'm going to need to deploy to a very specific version of Debian / Ubuntu, a virtual environment might not match behavior on the actual target system but a VM definitely will.
- CydeWeys 6y agoCan you not trivially update all these things though? Like how big of a deal is it really? Or are you stuck using their specific distribution, and their distribution can't be updated to a more recent Ubuntu and python?
- pizza 6y agoYou can update things but in my experience it wasn't trivial
- CydeWeys 6y agoIs it just the normal process for updating Ubuntu to the next release though? I wouldn't call that trivial either, but only because it'll likely take hours here. Still, it's a well-trammelled path that typically works well and while unattended. So if that's all it is it doesn't seem like a huge deal.
- hobofan 6y agoI would guess because the NVIDIA driver/library support on 20.04 is still lacking. I just set up a new 20.04 for ML and the official NVIDIA repos for this version were still missing a few cuXYZ libraries. I had to also add the 18.04 repos and symlink them together to get some Frankenstein library mess that works (as far as I can tell).
- danieldk 6y agoWait, what? That really surprises me. I am using CUDA 11 on NixOS unstable (which is a rolling release) without any issues at all. Or is that on Aarch64?
- my123 6y agoJetson is still on CUDA 10.2 which only supports fully GCC 8 and earlier. Support for CUDA 11 is coming soon, with the bump to Ubuntu 20.04 at the same time too. However, patching those issues isn't very problematic.
- Abishek_Muthian 6y agoI use SBCs extensively, bought Jetson Nano as soon as it was available, I'm convinced that none of the SBCs in the 4GB Memory space are fit to run in the desktop mode and removing desktop packages to make more space for headless mode is the first thing I do after installing the OS. I doubt that it largely has to do with the lack of optimisations of the graphical packages in the Linux for ARM architecture, as a x86 Chromebook with 4GB memory and slightly better CPU clock boost rate can offer far superior desktop experience.
- pikrzyszto 6y ago> Want python later than 3.6? apt-get install python3.7 or apt-get install python3.8
- amelius 6y agoThat might theoretically trigger updates of packages on which NVidia stuff depends (through indirection), which will then render your system unusable. You might be lucky, though.
- speedgoose 6y agoAn alternative is to use Docker containers or similar.
- stjohnswarts 6y agothat's why you look at what's getting install before you hit go. anyway it's easy enough to backup and restore almost all these SBC's
- andrewf 6y agoI think it'll be all right. python3.8 is its own distinct package, which will install alongside the existing python3.6. Debian/Ubuntu's "alternatives" system can select what /usr/bin/python3 runs. In practice, changing that away from the distribution default can break other people's code, and the win of an LTS is not spending time on that stuff. But you can get yourself a Python 3.8, then you can build venvs, run a Jupyter kernel in it, whatever you like. If you can download or rebuild all the modules you want in a 3.8 venv, you're pretty set. And everything wanting Python 3.6 on your LTS still works.
- janoc 6y agoThat will most likely break OpenCV, Tensorflow and CUDA which depend on binary packages compiled for the given version of Python.
- freeone3000 6y agoCUDA doesn't depend on python, it's the other way around. And you'd install the new versions of those packages.
- quellhorst 6y agoAlso, no ffmpeg with hardware acceleration. They force you to use gstreamer.
- my123 6y agoffmpeg with hardware acceleration is available, see: https://github.com/jocover/jetson-ffmpeg https://github.com/jocover/jetson-ffmpeg (there's also the NV prebuilts of an older version of the patchset at https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fmultimedia.html%23wwpID0E0JB0HA https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%252... )
- banachtarski 6y agoI'm not going to lie, I don't understand the usage of Python and other such languages in the embedded space in general.
- jeremyjh 6y agoThis is not really the classic embedded space; it is a full ARM processor running a full linux operating system. Its more like a small server than a MCU board. It couldn't be used for hard real-time requirements.
- stjohnswarts 6y agoThis are fully blown computers with plenty of ram and using python on them is just fine if it meets your cpu usage spec. People get too carried away with the term embedded. Not everything is an MSP430 with a tiny bit of memory or processing power. That said, I've been using modern c++ and rust on my hobby projects as they have most of the advantages of python and blow it away as far as memory usage and performance, at least for embedded usage where we're not building huge web apps or similar.
- janoc 6y agoRapid prototyping and in the case of Jetson - computer vision and Tensorflow running on the GPU. Both have excellent support for Python. Sure you can make those things run natively but people using them are used to Python, lot of code is written in Python for it and there is little to no performance penalty of running the code in Python (everything perf. critical is running natively anyway, Python is only used to "glue" those bits seamlessly together). And once you have RAM in gigabytes even the extra memory overhead of Python becomes a moot point.
- wtracy 6y agoIn this particular case, I think everything compute-intensive happens in the GPU anyway, so there's not much to lose by using a high level language on the CPU side.
- vaccinator 6y agoI just installed python 3.8 on my Ubuntu 14.04... Had to also upgrade openssl and lzma for it to be useful though
- m463 6y agoI think there are (in general) two models that work. 1) ubuntu lts - stable releases - I'm a server person I want nothing to change, ever. 2) arch linux - rolling releases - I'm a desktop person, I want the latest of everything, now. anything between these two extremes kind of sucks, both as a developer and as a user. advantages: 1: "Q: I want to disable snapd on ubuntu 18.04, how do I do it?" "A: <20 detailed posts of how to do it>" 1: "user: something isn't working" "developer: clearly your fault, I haven't changed anything in that project in 4 months" 2: "Q: I want to disable snapd on arch linux, how do I do it?" "A: why did you install it? look on the wiki." 2: "user: something isn't working" "developer: everything is up-to-date, please do pacman -Syu and read the wiki"