Project

General

Profile

Feature #11067

Vulkan

Added by Pawel Janowski over 2 years ago. Updated about 2 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
General
Target version:
Start date:
06/29/2016
Due date:
% Done:

0%

Affected Version:
git development version
System:
all
bitness:
32-bit
hardware architecture:
amd64/x86

Description

is it possible to support Vulcan?
The OpenCL is supported, but on Arm Devices (ex. NVidia Jetson TK1) the not.
On this device is CUDA and Vulkan API supported now.

[[https://developer.nvidia.com/embedded/develop/software]]

Regards
Pawel

History

#1 Updated by Roman Lebedev over 2 years ago

  • System changed from Ubuntu to all

Pawel Janowski wrote:

is it possible to support Vulcan?
The OpenCL is supported, but on Arm Devices (ex. NVidia Jetson TK1) the not.

Not really sure what is our position on arm architecture support.
Also, that thing is 32-bit, and has way too low amount of memory.

On this device is CUDA and Vulkan API supported now.

(personal opinion)
Sounds like traditional nvidia-style lock-up to cuda.
As in, the only reason opencl is not supported is because they want users
to use their own cuda and not more common opencl..

[[https://developer.nvidia.com/embedded/develop/software]]

Regards
Pawel

In general, i think vulkan is more like a direct replacement for
opengl + dx, with some bits for computing, unlike opencl which
is designed mostly for computing.
(i only have limited opencl experience, so this is my uneducated guess)

In my personal opinion, proper support for HSA/APU would be a better task.

#2 Updated by Roman Lebedev over 2 years ago

  • Tracker changed from Bug to Feature

Definitely not a bug :)

#3 Updated by Pawel Janowski over 2 years ago

yes, that is not a bug - my fail ;(

I ran it on Tegra K1 (Jetson TK1) - currently it reinstalls the latest version of Linux For Tegra (L4T) 24.1 - I will check it after the reinstallation.
I want to be a tester DT @ ARM Architecture ;)

Vulkan is also for compute :
[[https://en.wikipedia.org/wiki/Vulkan_(API)]]
@Vulkan is a low-overhead, cross-platform 3D graphics and compute API first announced at GDC 2015 by the Khronos Group.[9][10][11] The Vulkan API was initially referred to as the "next generation OpenGL initiative" by Khronos@

and is open standard :
[[https://en.wikipedia.org/wiki/Khronos_Group]]
@The Khronos Group is an American non-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free application programming interfaces (APIs)@

Regards
Pawel

my Jetson TK1 : [[http://sq7mru.blogspot.com/2016/01/jetson-tk1-zastosowanie-jako-stacja.html]] [[http://sq7mru.blogspot.com/2016/01/nvidia-jetson-tk1-pierwsze-wrazenia.html]]

#4 Updated by Roman Lebedev over 2 years ago

Pawel Janowski wrote:

yes, that is not a bug - my fail ;(

I ran it on Tegra K1 (Jetson TK1) - currently it reinstalls the latest version of Linux For Tegra (L4T) 24.1 - I will check it after the reinstallation.

Cool.
If you do encounter any arm-specific bugs (which are not 32-bit induced),
direct them to me, maybe some of those will be possible to fix..
Though, i have no hardware, and i ported using qemu.

I want to be a tester DT @ ARM Architecture ;)

Vulkan is also for compute :
[[https://en.wikipedia.org/wiki/Vulkan_(API)]]
@Vulkan is a low-overhead, cross-platform 3D graphics and compute API first announced at GDC 2015 by the Khronos Group.[9][10][11] The Vulkan API was initially referred to as the "next generation OpenGL initiative" by Khronos@

Yes, that was my point exactly - also for compute, as in, that is not it's main purpose, but just a side-feature.

and is open standard :
[[https://en.wikipedia.org/wiki/Khronos_Group]]
@The Khronos Group is an American non-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free application programming interfaces (APIs)@

Regards
Pawel

my Jetson TK1 : [[http://sq7mru.blogspot.com/2016/01/jetson-tk1-zastosowanie-jako-stacja.html]] [[http://sq7mru.blogspot.com/2016/01/nvidia-jetson-tk1-pierwsze-wrazenia.html]]

#5 Updated by Pawel Janowski about 2 years ago

Roman Lebedev wrote:

Pawel Janowski wrote:

yes, that is not a bug - my fail ;(

I ran it on Tegra K1 (Jetson TK1) - currently it reinstalls the latest version of Linux For Tegra (L4T) 24.1 - I will check it after the reinstallation.

Cool.
If you do encounter any arm-specific bugs (which are not 32-bit induced),
direct them to me, maybe some of those will be possible to fix..
Though, i have no hardware, and i ported using qemu.

I want to be a tester DT @ ARM Architecture ;)

Vulkan is also for compute :
[[https://en.wikipedia.org/wiki/Vulkan_(API)]]
@Vulkan is a low-overhead, cross-platform 3D graphics and compute API first announced at GDC 2015 by the Khronos Group.[9][10][11] The Vulkan API was initially referred to as the "next generation OpenGL initiative" by Khronos@

Yes, that was my point exactly - also for compute, as in, that is not it's main purpose, but just a side-feature.

and is open standard :
[[https://en.wikipedia.org/wiki/Khronos_Group]]
@The Khronos Group is an American non-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free application programming interfaces (APIs)@

Regards
Pawel

my Jetson TK1 : [[http://sq7mru.blogspot.com/2016/01/jetson-tk1-zastosowanie-jako-stacja.html]] [[http://sq7mru.blogspot.com/2016/01/nvidia-jetson-tk1-pierwsze-wrazenia.html]]

Hello Roman,

its my script to install

sudo apt-get install git make cmake autoconf build-essential xsltproc libxml2-utils libxml-parser-perl libxml-parser-perl libglib2.0-dev libgtk-3-dev libgtk-3-doc libxml2-dev liblensfun-dev librsvg2-doc librsvg2-dev libsqlite3-dev lua-curl-dev libcurl4-gnutls-dev libjpeg-dev libtiff-dev liblcms2-dev libopenexr-dev libgphoto2-dev libwebp-dev libjson-glib-dev libexiv2-dev liblua5.2-dev libpugixml-dev 

cd ~/
wget -c http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz
tar -xvf intltool-0.50.2.tar.gz
cd intltool-0.50.2
./configure
make
sudo make install

cd ~/
git clone https://github.com/darktable-org/darktable.git
cd darktable
mkdir build
cd build
cmake ..
make

but this stop at 18%

[ 18%] Building C object src/CMakeFiles/lib_darktable.dir/common/cpuid.c.o
[ 18%] Building C object src/CMakeFiles/lib_darktable.dir/common/darktable.c.o
/home/ubuntu/darktable/src/common/darktable.c: In function ‘dt_init’:
/home/ubuntu/darktable/src/common/darktable.c:470:2: error: #error "Unfortunately we only work on amd64/x86 (64-bit and maybe 32-bit) and ARMv8-A (64-bit only)." 
 #error "Unfortunately we only work on amd64/x86 (64-bit and maybe 32-bit) and A
  ^
/home/ubuntu/darktable/src/common/darktable.c:475:2: error: #error "On non-x86, we only support 64-bit." 
 #error "On non-x86, we only support 64-bit." 
  ^
/home/ubuntu/darktable/src/common/darktable.c:489:9: note: #pragma message: Building without SSE2 is highly experimental.
 #pragma message "Building without SSE2 is highly experimental." 
         ^
/home/ubuntu/darktable/src/common/darktable.c:490:9: note: #pragma message: Expect a LOT of functionality to be broken. You have been warned.
 #pragma message "Expect a LOT of functionality to be broken. You have been warn
         ^
src/CMakeFiles/lib_darktable.dir/build.make:340: polecenia dla obiektu 'src/CMakeFiles/lib_darktable.dir/common/darktable.c.o' nie powiodły się
make[2]: *** [src/CMakeFiles/lib_darktable.dir/common/darktable.c.o] Błąd 1
CMakeFiles/Makefile2:1371: polecenia dla obiektu 'src/CMakeFiles/lib_darktable.dir/all' nie powiodły się
make[1]: *** [src/CMakeFiles/lib_darktable.dir/all] Błąd 2
Makefile:149: polecenia dla obiektu 'all' nie powiodły się
make: *** [all] Błąd 2

Could I make with magic -switch-off ;) build on 32bit env on ArmHF ?

/home/ubuntu/darktable/src/common/darktable.c:475:2: error: #error "On non-x86, we only support 64-bit."
#error "On non-x86, we only support 64-bit."

#7 Updated by Pawel Janowski about 2 years ago

the CSDR library uses the neon : https://github.com/simonyiszk/csdr

#8 Updated by Roman Lebedev about 2 years ago

(That is a 32bit system, isn't it?)
For your own local usage you can just remove those #errors.

As for official upstream, i'm not really sure yet, but we'd like to not start (as in, add new to the "supported") supporting anything 32-bit, given all the memory problems that it has...

Also available in: Atom PDF