CILKRTS20.dll , IRML.dll not found error

CILKRTS20.dll , IRML.dll not found error


I have developed a simple image processing OpenCL application on Windows 7 Ultimate, VS2010 and I want to run the .exe file of this application on another system. Basically the platforms are identical(the CPU and the GPU) but OS is Windows 7 Professional. I have just installed the graphics driver on this machine and I want it this way.(No Opencl SDK, no toolkit, no Visual Studio). I am using NVIDIA GeForce graphics card.

I also tried running the executables for all configurations(win32 debug/release, x64 debug/release).
Then using depends.exe, Ifigured out that CILKRTS20.dll and IRML.dllare not found.
Any idea how to fix this..?

13 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Sorry copy paste error. You need the redistributable for what ever the version of Intel compiler you used.


Hey I have installed the.msi file. I see that one of the dll is found i.e. CILKRTS20.dll. But the other one, IMRL.dll is still notfound by the dependency walker..

What do I do with the .msm file. Sorry if this seems to be a silly question. Do I need to paste the .msm file in some directory ??


Best Reply

Make sure you add c:\program files (x86)\common files\intel\shared libraries\redist\intel64\compiler\irml to your path (for 64-bit) or c:\program files (x86)\common files\intel\shared libraries\redist\ia32\compiler\irml for 32-bit.


Thanks a lot Raghu. That worked for me.
So if you want to run the .exefromthe command line then set the path as mentioned in the above post.
It can be done this way in your command line..
set path="<...pathname...>%path%

You can also set it in the environment variable. Go to My computer->properties->Advanced Properties->Environment variables

and add this path to the variable "Path". You are done and you can directly double click on your .exe to run your files.

Well to my sadness, its not working prefectly for me. Some of the files worked but some of them did not. Again the same error(IMRL dll) even after setting the path in the environment variables. But first I want to know what exactly is the need for these dlls. After giving some thoughts later, I wondered that I have developed the executable on another machine and that time I didn have to worry about these dlls. Just when executing the .exe file, why do I need these dlls.That too when I was running the executable on the machine on which I developed, I didn have to think about these. How did Visual studio 2010 handle this on the development machine.?Pls do respond.Thanks.

What do you mean by "its not working perfectly" and "Some of the files worked but some of them did not"?

Did you use Intel compiler or Microsoft? When you build an exe usually there are some components the exe depends on (like the runtime). The machine on which you run the exe should have these components otherwise your program won't run.

Please explain exactly what you are trying to do.


All I am trying to do is develop an OpenCL application on a machine(Windows 7 ultimate). It has Visual studio, graphics driver, cuda toolkit, .net framework installed. I will just take the exe file and run it on another machine which has basically the same hardware (CPU and GPU) but OS is Windows 7 professional. This is my target machine where I want to run the exe. I have installed only the graphics driver here and nothing else.So on the target machine;I profiled my exe file with depends.exe and I got to know that it was looking for IMRL.dll and CILKRTS20.dll. So after your suggestion in the previous reply, I installed the VC++ redistributable libraries for Intel. For the first time I was using the exe of a simple hello world program. This has a kernel which will copy the string "Hello World" from source to destination. This worked correctly for me on the target machine.Later I tried some of the exe files from NVIDIA SDK. Couple of them worked fine. Then I had developed one more application which involved image processing. When I tried to run this exe file on the target machine, I get to see that depends.exe again complians about the IMRL.dll.The path environment variable is set to C:\Progam Files (x86)\common files\...\imrlThe processor in both the machines is Intel 3rd gen processor and the GPU is NVIDIA GeForce 9400GT.So I was wondering how did Visual studio handle it on the development machine so that I didn have to think about the CILKRTS20.dll and IMRL.dll. ?? And why is it now required by the target machine ?

You keep saying imrl, butI am guessing you mean irml. Are you sure you set your path correctly?

What is the error you are getting?


Ya sorry for that, I did mean irml. I have checked the path that I have set, its correct. It says error opening file. The system cannot find the file specified.

From our offline conversation, you are building the Nvidia samples and running them (on GPU). So as I explained your problem is not due to missing CILKRTS20.dll or IRML.dll. I am not sure how those fileseven came into the picture. As I understand you reinstalled the Nvidia driver and everything worked.


Sorry for the late update but I just wanted to make sure about the solution. The thing is I don know why I saw that behavior but just a simple though silly,re-installation of graphics driver worked out. I uninstalled all the redistributables for Intel C++ and I see no problem at all.

With this I just thought, is the Dependency Walker really usefull since that was the one which showed me about the missing dlls. I seriously don know the answer for this,but just with the app crashing and no choice but to close the application, I feel depends.exe might be helpful. So a better question would be, when to use the depends.exe. . . ?

Apologies for the question seems to be out of context in this forum.

Leave a Comment

Please sign in to add a comment. Not a member? Join today