Deploying linux CUDA app - deployment

I've compiled a cu program on my laptop, using NVIDIA CUDA 5 toolkit. A very basic interface, using only terminal output. Then I went on to test how it runs on my desktop PC (both have Ubuntu 12.04 LTS installed).
On the desktop PC I get this error message:
error while loading shared libraries: libcudart.so.5.0: cannot open shared object file: No such file or directory
Ok, I get it, some libs are not installed. But do I really need to install CUDA toolkit on every PC where I'd want my compiled code to run?

To deploy a CUDA runtime API application on linux you only need to do two things:
Make sure that the machine in question has a CUDA compatible card and a minimum driver version which matches the CUDA Toolkit you used to build the application (you can find information regarding both of these in the release notes of the toolkit)
Distribute the runtime library (so cudart.so) that you built the application against with the executable. If you used any other libraries from the toolkit (like CUBLAS, CUFFT, CUSPARSE, etc) you need to inlcude those too. The CUDA runtime library is versioned and you have to have the libraries which match the toolkit you are building with. You may need to use the LD_LIBRARY_PATH environment variable to ensure that the correct versions of the libraries are found by the link loader. Often a simple shell script which acts the canonical application, settings LD_LIBRARY_PATH variable and running the built executable is the best way to do this.
If you get those two things right, it should just work.

Related

Acquire Gtk binaries for windows under linux

I am currently trying to compile my Gtkmm program for windows using my linux system. This requires that I ship the Gtk binaries (in this case .dll's) with my program, since Gtk does not support static linking.
But I just dont know how to get them - the official Gtk download page ( https://www.gtk.org/download/windows.php ) just redirects to the MSYS2 project ( http://www.msys2.org/ ) that offers .EXE files **rage*!
I just dont know where I can download the right dll files that I need to include :/
I would appreciate any help with this.
Regards,
NiAypa
The GTK+ project does not distribute binaries for any platform.
If you are cross-compiling from Linux to Windows, you will need to cross-compile all the dependencies yourself, and distribute them together. Various distributions, like Fedora, ship with cross-compiled dependencies that you can re-use for that purpose.
The MSYS2 project is for building applications and libraries on Windows, using a native toolchain.
I'd like to point out that cross-compiling is great if you want to do CI and testing, but if you want to distribute complex applications for Windows my suggestion would be to actually build them on Windows.

Issue with Netbeans

I have installed netbeans in my PC (windows 7), wrote a javaFX application program and generated executable jar file
I finally need the executable jar file to be working on Raspberry pi linux and I want to use only openjdk since oracle java for Rpi doesn't support AWT and Swing and my application majorly includes that.
When i tried to execute the jar file using openjdk, i am getting an error - you need to install newer version of JRE to execute this file. I have also tried to execute the same file in ubuntu to verify if there is something wrong and its showing the same error
But, the jar file was executed properly through oracle java in ubuntu. I also tried using Oracle java on RPi, but it opened but didn't work properly.(expected, because it doesn't support AWT and Swing)
So, I think i have an issue opening the file using openjdk. Can somebody help me with this
Thanks in Advance
I am in the process of buying my Raspberry Pi but have already started looking at the development environment I will need. You may find what you are looking for in these very clear resources I found:
http://adf4beginners.blogspot.co.uk/2013/04/how-to-get-java-embedded-suite-running.html
http://docs.oracle.com/javame/config/cldc/rel/8/rpi/html/getstart_rpi/toc.htm
As Ryanteck mentioned, you will probably have to be running Raspbian (item number 1, the tutorial, uses that OS).
Good luck
The Raspberry Pi's recommended OS does not support Java at all. The main thing to try is to test it using the Debian Soft float image which should support Java on the Raspberry Pi fine. But it is still in development so may not work.

Include drivers with application installation

I have created an application in C# that relies on a specific driver (a custom virtual hid driver based on VMulti).
Currently, I have everything working and I want to combine both the application and driver into one installation package. As of right now, my application part has a .exe file and a .dll file. My driver has an .inf and .sys file, hidkmdf.sys, and WdfCoInstaller01009.dll (this dll is from the WDK). I am not able to install the driver through the traditional method of right-clicking the inf and clicking install. Instead, I use devcon to install it (command is "install inffile.inf hardwareid")
I tried using InstallShield LE, but I am only able to install the application, not the driver. After doing some searching, I found people using DIFxAPP to create the installation framework for drivers, however, I am not sure if this can be integrated into InstallShield so that the driver is installed during the application installation process.
So my main question is: What is the best and simplest method for combining application and driver installation into one package (meaning the setup.exe will install both the driver and the application)?
I am very new to driver development and application deployment, so any suggestions are welcome.
Thank You
EDIT: It is preferred that the solution does not require any paid tools.
Acctually, exists a many ways to implement this which depends on your Windows Installers skills.
You didn't specify target OSes for your application, that's why can I give you some ways:
PnpUtil.exe internal Windows 7 utility (only for Windows 7)
DPInst.exe included to WDK
DifXAPI merge module.
You can install drivers with help of all these utils via Custom Actions.
NOTE: That your driver SHOULD BE signed, otherwise you will receive error during silent installation.

Visual C++ Runtime on Network Location

I have a MATLAB executable that I am trying to deploy within my company, but I don't want people to need to install a bunch of stuff. The executable is saved to a network location and I want them to just run it. I have MATLAB Compiler Runtime (MCR) set up on the network, but now I'm running into issues with Visual C++ Runtime (VC++R) saying the application isn't installed properly. Is there a way to install VC++R to a network location. (People don't have permissions to install things, which is why I want to get away from having to install MCR and VC++R.)
From my experience with deployed MATLAB using MCR through r2013a, MCR must always be installed locally.
This does present an issue with thin clients.
A workaround would be to deploy the executable as a remote-ly accessible service, either a Windows Service or other endpoint. This was my solution

How to deploy application with QT5

So I have made GUI frontend for latex with QT5 using QT creator. The application works fine, but I'm unable to deploy it. The deploy option in build is grayed out. I have also tried following this guide but I can't even configure my QT to use static linking. I was able to configure the source, but when I try to run mingw32-make sub-src, it says nothing to do here.
I downloaded QT from here using the link Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB). I have also downloaded microsoft visual studio express for Windows 8 to get tools required for building c++.
I also tried to install mingw32 manually. I have also installed Strawberry perl, because one guide told me to do that, but that did nothing.
I managed to fix this problem. There was one .dll. Reason why I didn't find it earlier was that my application did not need it by itself, but one of libraries I used was dependaple from it. The missing .dll was icuuc49.dll.