I have recently purchased OrangePi's Lite2 development board, with Allwinner H6 SOC, which includes Quad-Core A53 + T720 Mali GPU.
In the H6 SPEC, it clearly states that the GPU supports OpenCL 1.1 API, however, the Ubuntu (Desktop vesrion) image I've installed from OrangePi's site doesn't include the OpenCL driver and I cannot find it anywhere on the web.
Is it possible that although the GPU itself supports OpenCL (in terms of hardware) Allwinner never implemented the driver for it? Or am I supposed to somehow recompile the Linux kernel with the Mali drivers?
As stated in Arm Community:
In this instance the SoC (System on chip) for the OrangePi2 is by Allwinner. You will need to contact Allwinner and ask them if they are willing to provide Shenzhen Xunlong Software the binaries you need for the OrangePi2.
The respone I got from AllWinner was:
Sorry,we do not open the OpenCL driver platform.
Which I translated as "Good luck in your future endeavors"
Related
For context, I am researching upgrades into our OpenCL code at work as we are quite far behind current spec. The team I work in develops on all three of the major OSes and as far as I can tell Apple doesn't support past OpenCL 1.2 on any of their machines instead prompting you to learn and use Metal performance shaders.
I would like to update our code base to C++ for OpenCL which is based on OpenCL 2.0 or 3.0 depending on which version you use. C++ for OpenCL is fine on Windows and Linux as they have GPU drivers which support up to and past the 2.0 requirement, but Mac might have a problem with it without official support in the drivers. So I had the idea that if we could cross compile the CL kernels to Metal for the Mac users they would be able to run a Metal version of the code locally.
Has anyone got any solutions to this problem.
I working on customized SoC with ARM Cortex-A9.
It supports NEON, but do not has Mali GPU.
With system, can I use OpenCL with NEON?
I found OpenCL SDK for Mali at ARM website.
(http://malideveloper.arm.com/resources/sdks/mali-opencl-sdk/)
but there isn't any words support NEON.
ARM have previously announced OpenCL for NEON, but these were not directly available to the public, and the 'opencl-for-neon' link on that page now just redirects to the Mali developer page.
You could instead use pocl, an open source implementation of OpenCL that runs on many different platforms, include ARM CPUs with NEON.
There exist some third party research work on this topic
they created a framework for OpenCL to make use of NEON instructions
check here:
https://www.researchgate.net/publication/261176555_OpenCL_framework_for_ARM_processors_with_NEON_support
In the ARM world vendors supply their own BSPs to initialize board peripherals. Intel boards that you buy on the market all seems to come with some version of BIOS. Does BIOS do thing that BSPs cannot do? What if some hobbyist or engineer wants to do development using Intel processors but do not want anything to do with the BIOS? Why restrict programming with a layer of firmware that programmers have no source access to?
Typically the BIOS is no layer of firmware but rather the firmware to boot the system. After booting control is provided by the OS such as Windows or Linux.
This is not really my area, but ....
The initials BSP are heavily overloaded. It appears you mean board support package and not Boot-strap-processor or one of the other computer related terms that use those initials.
It is my understanding that BSP's (board support packages) are primarily used for embedded systems and indeed, when I did a web search on 'Intel bsp', most of the hits were discussing Intel Galileo and Intel Edison boards, which are targeted toward IoT (internet of things) projects and other embedded projects. But I also found BSP's, for sale and for free, in executable and in source form, for a wide variety of Intel boards. If you are working with Linux, you might want to check out https://www.yoctoproject.org/ .
I don't know if there are any vendors packaging a BSP with an Intel board, but it is certainly possible.
The only open source boot firmware for Intel processors that I know of is coreboot. It doesn't support every board. If you are building your own board, then you could customize it to work with your design. A typical modern BIOS has lots of bloat such as ACPI and UEFI that you may or may not want.
What is the difference between Intel, AMD and Khronos OpenCLs. I am totally new to OpenCL and want to start with it. I don't know which one is better to install on my operating system.
OpenCL is an "extension" to C and C++ languages that enables parallelization of software on your compute devices: CPU, GPU, etc.
OpenCL is defined by a standard (created by Khronos Group) and implemented by hardware vendors Intel, AMD, nVidia, etc.. So each OpenCL implementation requires a vendor specific OpenCL driver that will enable the usage of the vendor's hardware.
So to conclude, if you have an Intel based system, use the Intel OpenCL because only so you would be able to use all compute devices in your machine. The same goes if you have an AMD system. Also, take note that there is no Khronos OpenCL implementation.
Of course you can have a platform with OpenCL enabled devices from multiple vendors (e.g. Intel CPU+GPU and nVidia discrete card). In this case the OpenCL runtime contains a generic layer (a dynamic loaded library). This layer is an interface which calls the implementations provided in each device driver depending on the selected OpenCL platform.
OpenCL is a standard defined by Kronos. They distribute header files that you have to give to your compiler. They do not distribute binaries to link against. For that, you must get an ICD (Installable Client Driver), on Windows this is in the form of a DLL file. You will get it from installing one or more of...
Nvidia drivers (if you have an Nvidia GPU)
AMD drivers (if you have an AMD GPU or an AMD CPU)
Intel Drivers (if you have an Intel CPU, also some Intel CPU's have built in GPU's).
Do not worry about compiling against one vendor and it not working on another, OpenCL has been carefully designed to work around this. Compile against any version you have, it will work with any other version that is the same or newer, regardless of who made it.
Be Aware, the AMD OpenCL driver will operate as an OpenCL driver for Intel CPU's. If, for example, you have an AMD GPU and an Intel CPU, and have installed the Intel OpenCL driver and the AMD OpenCL driver, the AMD driver will report that it can provide both a GPU device and a CPU device (your CPU), and the Intel driver will report having a CPU device (also your CPU) and most likely also a GPU device (the GPU that is on the Intel CPU die, for example on an i7-3770, this will be a HD4000). If you blindly ask OpenCL for "All CPU's available" you will get the AMD drivers and the Intel drivers offering you the same CPU. Your code will not run very well in this case.
On Windows it is expected that you will download the header files yourself, and then either create a library from the DLL (MSVC), or link directly against the DLL (Mingw & Clang default behavior).
On Linux, you package manager will likely have a library to link against, consult your distributions documentation regarding this. On Ubuntu and Debian this command will work...
sudo apt-get install ocl-icd-opencl-dev
On Mac, there is nothing to install, and trying to install something will likely damage your system. Just install Xcode, and use the framework "OpenCL".
There are other platforms, for example Android. Some FPGA vendors offer OpenCL libraries. Consult your vendors documentation.
Khronos defines OpenCL standard. Each vendor/ open source will implement that standards.
Khronos defines set of conformance tests which need to pass if a vendor claims that his opencl implementation is as per standard.
I'm having an app that processes some DSL and draws a page. That app is qt-based. I need to work with DSL not with QT. When processing that DSL an app throws the following error
OpenGL ARB_framebuffer_object extension is not available
My laptop is rather old. I'm running Windows Vista, my gfx card is ATI Radeon HD 3200 Graphics. I tried to install ATI Radeon HD 4850 X2 Catalyst Driver 9.1 WHQL Vista and Hydravision pack for Vista and that did not help.
Can someone tell me whether I can fix the problem on my laptop and how?
The error message is pretty straightforward: your hardware just doesn't support the required extension.
And it's common knowledge software developers hate hardware problems :)