You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/FAQ.md
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Troubleshooting and Frequently Asked Questions
2
2
3
-
This document describes common troubleshooting steps, solutions to common problems encountered when using the Intercept Layer for OpenCL Applications, and other answers to other frequently asked questions.
3
+
This document describes troubleshooting steps, solutions to common problems, and answers to other frequently asked questions.
4
4
5
5
## What is the Intercept Layer for OpenCL Applications? Why should I use it?
6
6
7
-
In short, the Intercept Layer for OpenCL Applications is a tool enabling OpenCL developers to quickly debug, analyze, and optimize OpenCL applications.
7
+
In short, the Intercept Layer for OpenCL Applications is a tool that enables OpenCL developers to quickly debug, analyze, and optimize OpenCL applications.
8
8
It is thin and fast.
9
9
It can easily be enabled during development and testing, then disabled for deployment.
10
10
It almost always works without any application modifications and has been tested with OpenCL implementations from multiple vendors.
11
-
It is regularly used on Windows and Linux, generally works on OSX, and has been successfully used on Android.
11
+
It is regularly used on Windows and Linux, generally works on OSX, and has been successfully used on Android and other operating systems.
12
12
13
13
The Intercept Layer for OpenCL Applications can:
14
14
@@ -53,7 +53,7 @@ In these cases, switching to a "global install" or "local install" method is als
53
53
54
54
If your application is running correctly without the Intercept Layer for OpenCL Applications, but crashing with it, then it is very likely that the Intercept Layer for OpenCL Applications was unable to find the "real" OpenCL library (usually an OpenCL ICD loader) to load and pass calls to.
55
55
This is more likely to happen on non-Windows operating systems, since different Linux distributions or system configurations may install the real OpenCL library or OpenCL ICD loader to different locations in the file system, but it can happen on Windows as well.
56
-
When the Intercept Layer for OpenCL Applications cannot find the "real" OpenCL library, or finds the wrong "real" OpenCL library, the "real" OpenCL library or OpenCL ICD loader may be specified manually via the `OpenCLFileName` control.
56
+
When the Intercept Layer for OpenCL Applications cannot find the "real" OpenCL library, or finds the wrong "real" OpenCL library, the correct "real" OpenCL library or OpenCL ICD loader may be specified manually via the `OpenCLFileName` control.
57
57
In most scenarios, this control should be the full path name to the OpenCL library or OpenCL ICD loader, typically `/path/to/libOpenCL.so` on Linux, or `drive:\path\to\OpenCL.dll` on Windows.
58
58
59
59
If all goes well, you should see output like the following in your log:
@@ -63,14 +63,14 @@ Trying to load dispatch from: path/to/OpenCLFileName
63
63
... success!
64
64
```
65
65
66
-
It's OK if you see lines like:
66
+
It's OK if you see lines like this:
67
67
68
68
```
69
69
Couldn't get exported function pointer to: clSetProgramReleaseCallback
70
70
Couldn't get exported function pointer to: clSetProgramSpecializationConstant
71
71
```
72
72
73
-
This may happen if your OpenCL library or OpenCL ICD loader does not support the newest OpenCL APIs.
73
+
This output may happen if your OpenCL library or OpenCL ICD loader does not support the newest OpenCL APIs.
74
74
This will only cause a problem if the application you are trying to intercept requires the newer APIs.
75
75
Of course, this will cause a problem without the Intercept Layer for OpenCL Applications installed, also!
76
76
@@ -80,7 +80,7 @@ On Linux operating systems, you may find the path to the real OpenCL library or
@@ -110,7 +110,7 @@ If you think you are setting a control but it does not appear to be taking effec
110
110
ErrorLogging is set to a non-default value!
111
111
````
112
112
* If you are setting a control via an environment variable, be aware that on many operating systems, such as Linux, environment variables are case sensitive.
113
-
Likewise, if you are executing your application via a non-standard method, such as via `sudo` or a syscall, be extra sure that you are properly inheriting the environment.
113
+
If you are executing your application via a non-standard method, such as via `sudo` or a syscall, be extra sure that you are properly inheriting the environment.
114
114
* Please remember as well that environment variable controls have a "CLI_" prefix before the name of the control, so to set the `CallLogging` control you would set the environment variable `CLI_CallLogging`.
115
115
* If you are setting a variable via the registry or a configuration file, double-check that the config file is in the proper location (typically the user's home directory, as defined by the `$HOME` environment variable), or the proper location in the registry.
116
116
* Windows users may find it most convenient to set controls via the `cliconfig` configuration application.
@@ -172,7 +172,7 @@ For another option, set the `UniqueFiles` control.
172
172
## How can I debug or analyze multiple instances of an application?
173
173
174
174
By default, the OpenCL Intercept Layer dumps logs and other files to a dump directory based on the process name.
175
-
This works well for single instances of an application, but when there are multiple instances of an application, they will dump to the same directory, overwriting data or otherwise making complicating analysis.
175
+
This works well for single instances of an application, but when there are multiple instances of an application, they will dump to the same directory, overwriting data or otherwise complicating analysis.
176
176
177
177
The easiest way to debug or analyze multiple instances of an application is to set the `AppendPid` controls, which appends the process ID to the dump directory.
178
178
This causes each instance of the application to dump to a unique directory.
0 commit comments