Eu corro algumas aplicações opencl em 2x AMD Radeon HD 7870 em uma máquina rodando o Ubuntu 13.10.
Eu ligo a máquina e o lightdm tem o prompt de login. Desde que eu não posso fisicamente estar presente para fazer o login na máquina toda vez que eu ligar o ciclo. Eu quero solucionar o motivo pelo qual o Opencl não detecta a GPU após um ciclo de energia na máquina.
Sem fazer login no lightdm, se eu fizer ssh na máquina e iniciar os trabalhos opencl.
Opencl não "vê" a GPU.
Somente se eu fizer login na máquina fisicamente presente e efetuando login no lightdm, o shell remoto "verá" a GPU.
Eu não sei muito sobre o openCL para fornecer mais informações, mas isso parece ser algo sobre como o ubuntu inicializa. O que faz o login no console lightdm .. faça o estado do driver gráfico.
Existe alguma maneira de "carregar" o driver para que o OpenCL o veja.
Estranhamente o lsmod mostra "fglrx" carregado e em uso quando o Opencl não consegue "ver" a GPU.
#
Estado sem loggin no lightdm e como reportado por uma sessão do ssh
#
hari@hjubuntu:~$ ~/oepncl-program
Available device list:
Type: CPU, 'Intel(R) Core(TM)2 Quad CPU Q9450 @ 2.66GHz'
hari@hjubuntu:~$ lsmod
Module Size Used by
pci_stub 12622 1
vboxpci 23194 0
vboxnetadp 25670 0
vboxnetflt 27613 0
vboxdrv 320455 3 vboxnetadp,vboxnetflt,vboxpci
cuse 13274 3
dm_crypt 22832 0
kvm_intel 138567 0
kvm 431754 1 kvm_intel
gpio_ich 13476 0
ppdev 17671 0
snd_usb_audio 149162 2
bnep 19704 2
snd_usbmidi_lib 25070 1 snd_usb_audio
rfcomm 69130 0
bluetooth 372041 10 bnep,rfcomm
snd_hda_codec_hdmi 41154 2
microcode 23656 0
psmouse 97655 0
snd_hda_codec_realtek 56475 1
serio_raw 13413 0
snd_seq_midi 13324 0
snd_hda_intel 52267 7
snd_seq_midi_event 14899 1 snd_seq_midi
snd_hda_codec 188738 3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_rawmidi 30095 2 snd_usbmidi_lib,snd_seq_midi
snd_hwdep 13602 2 snd_usb_audio,snd_hda_codec
lpc_ich 21080 0
snd_pcm 102033 4 snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_seq 61560 2 snd_seq_midi_event,snd_seq_midi
snd_page_alloc 18710 2 snd_pcm,snd_hda_intel
snd_seq_device 14497 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 29433 2 snd_pcm,snd_seq
fglrx 8815330 48
snd 69141 31 snd_hda_codec_realtek,snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
it87 43113 0
hwmon_vid 12783 1 it87
parport_pc 32701 1
coretemp 13435 0
x38_edac 12898 0
soundcore 12680 1 snd
lp 17759 0
parport 42299 3 lp,ppdev,parport_pc
binfmt_misc 17468 1
mac_hid 13205 0
amd_iommu_v2 19054 1 fglrx
edac_core 62342 1 x38_edac
vesafb 13828 1
pata_acpi 13038 0
hid_generic 12548 0
usbhid 53014 0
hid 101762 2 hid_generic,usbhid
firewire_ohci 40327 0
firewire_core 64534 1 firewire_ohci
crc_itu_t 12707 1 firewire_core
r8169 67581 0
mii 13934 1 r8169
pata_jmicron 12758 0
ahci 25819 0
libahci 32009 1 ahci
floppy 69370 0
Depois que o usuário faz login e eu corro o mesmo programa.
#
Estado depois de entrar no lightdm e iniciar o ambiente de área de trabalho
#
hari@hjubuntu:~$ ~/opencl-program
Available device list:
Type: CPU, 'Intel(R) Core(TM)2 Quad CPU Q9450 @ 2.66GHz'
Type: GPU, 'Pitcairn'
Type: ACCELERATOR, 'Pitcairn'
Agora, se eu fizer um diff do lsmod
O que eu obtenho é
hari@hjubuntu:~$ diff before_login after_login | grep fglrx
< fglrx 8815330 48
< amd_iommu_v2 19054 1 fglrx
> fglrx 8815330 44
> amd_iommu_v2 19054 1 fglrx
SO logging fez com que o driver fglrx fosse usado por "44". Como faço para imitar isso, então eu tenho que fazer o login quando alguém de energia remota roda esta máquina?.
edit: Estou tentando implementar o script abaixo e sempre obtenho um
"hari@hjubuntu:~$ xauth extract "$DISPLAY"
xauth: (argv):1: bad "extract" command line"
O rótulo do ambiente $ DISPLAY está em branco
hari@hjubuntu:~$ echo $DISPLAY
xauth list dá
hjubuntu/unix:1 MIT-MAGIC-COOKIE-1 8562e9f6ac976f310d1425aa11e74184
hjubuntu:0 MIT-MAGIC-COOKIE-1 80f5f4c28e7e2d0fc9444b1862f5cbcb
hjubuntu:0 MIT-MAGIC-COOKIE-1 80f5f4c28e7e2d0fc9444b1862f5cbcb
hjubuntu/unix:13 MIT-MAGIC-COOKIE-1 142c11b5689f4bd2776e860b9d8719dd
hjubuntu/unix:14 MIT-MAGIC-COOKIE-1 08353f652f21b479a6da3a60282bce31
hjubuntu/unix:15 MIT-MAGIC-COOKIE-1 655d074dfb395f536283e70a9494428c
hjubuntu/unix:12 MIT-MAGIC-COOKIE-1 91387509c2dff960e295fdd0eb0ada52
hjubuntu/unix:11 MIT-MAGIC-COOKIE-1 914c7988660149b90eed958066ed2e71
hjubuntu/unix:10 MIT-MAGIC-COOKIE-1 0ab65dbaf838a08bd8c9141fb5da7c35
Imaginando como devo proceder.