ຫຼາຍອຸປະກອນ

The scheduling of OpenCL devices can be optimized on most systems using the “OpenCL scheduling profile” settings. However, if your system is equipped with more than one GPU, you might want to set the relative device priority manually. To do this you need to select the “default” scheduling profile and change the settings in the “opencl_device_priority” configuration parameter.

ມັນສຳຄັນທີ່ຕ້ອງເຂົ້າໃຈວ່າ darktable ໃຊ້ອຸປະກອນ OpenCL ແນວໃດ. ແຕ່ລະລຳດັບການປະມວນຜົນຂອງຮູບພາບ – ເພື່ອແປງຂາເຂົ້າເປັນຜົນລັບສຸດທ້າຍໂດຍການໃຊ້ລາຍການປະຫວັດ – ແມ່ນຖືກລັນໃນທໍ່ປະມວນຜົນພິກເຊລ (pixelpipe). ມີທໍ່ປະມວນຜົນພິກເຊລຫ້າປະເພດທີ່ແຕກຕ່າງກັນໃນ darktable. ປະເພດໜຶ່ງມີໜ້າທີ່ປະມວນຜົນມຸມມອງຮູບພາບກາງ (ຫຼື ມຸມມອງເຕັມ) ໃນໂໝດຫ້ອງມືດ, ອີກທໍ່ໜຶ່ງປະມວນຜົນຮູບພາບຕົວຢ່າງ (ໜ້າຕ່າງນຳທາງ, ເຊິ່ງຈຳເປັນສຳລັບຮີສໂຕແກຣມ ແລະ ສິ່ງອື່ນໆພາຍໃນທີ່ກ່ຽວຂ້ອງກັບການສະແດງຜົນທີ່ຖືກຕ້ອງຂອງມຸມມອງເຕັມ). ອີກທໍ່ປະມວນຜົນຕົວຢ່າງໜຶ່ງຈະຈຳເປັນສຳລັບການສະແດງໜ້າຕ່າງຫ້ອງມືດທີສອງ. ສາມາດມີແຕ່ລະອັນໃນສາມທໍ່ປະມວນຜົນນີ້ລັນໃນເວລາໃດກໍໄດ້, ໂດຍທີ່ທໍ່ປະມວນຜົນເຕັມ ແລະ ຕົວຢ່າງລັນໄປພ້ອມໆກັນ. ນອກຈາກນັ້ນ ຍັງສາມາດມີຫຼາຍທໍ່ປະມວນຜົນທີ່ລັນຂະໜານກັນເພື່ອສົ່ງອອກໄຟລ໌ ລວມທັງຫຼາຍທໍ່ປະມວນຜົນທີ່ສ້າງຮູບຍໍ້ (thumbnails). ຖ້າມີອຸປະກອນ OpenCL ຢູ່, darktable ຈະກຳນົດມັນໃຫ້ກັບທໍ່ປະມວນຜົນໃດໜຶ່ງໂດຍສະເພາະສຳລັບການລັນໜຶ່ງຄັ້ງ ແລະ ຈະປ່ອຍມັນຫຼັງຈາກນັ້ນ.

ຄວາມຕ້ອງການໃນການຄຳນວນຈະແຕກຕ່າງກັນຢ່າງຫຼວງຫຼາຍຂຶ້ນຢູ່ກັບປະເພດຂອງທໍ່ປະມວນຜົນພິກເຊລທີ່ກຳລັງເຮັດວຽກ. ຮູບພາບຕົວຢ່າງ ແລະ ຮູບຍໍ້ມີຄວາມລະອຽດຕ່ຳ ແລະ ສາມາດປະມວນຜົນໄດ້ໄວ, ໃນຂະນະທີ່ການປະມວນຜົນມຸມມອງຮູບພາບກາງ ຫຼື ໜ້າຕ່າງທີສອງແມ່ນຕ້ອງການພະລັງຫຼາຍກວ່າ. ທໍ່ປະມວນຜົນການສົ່ງອອກເຕັມຮູບແບບແມ່ນຕ້ອງການພະລັງຫຼາຍກວ່າອີກ.

The configuration parameter “opencl_device_priority” holds a string with the following structure:

a,b,c.../d,e,f.../g,h,i.../j,k,l.../m,n,o...

ແຕ່ລະຕົວອັກສອນແທນອຸປະກອນ OpenCL ໜຶ່ງອັນໂດຍສະເພາະ. ມີຫ້າຊ່ອງໃນຂໍ້ຄວາມພານາມິເຕີທີ່ແຍກດ້ວຍເຄື່ອງໝາຍທັບ (/), ແຕ່ລະຊ່ອງແທນທໍ່ປະມວນຜົນພິກເຊລໜຶ່ງປະເພດ. a,b,c... ກຳນົດອຸປະກອນທີ່ໄດ້ຮັບອະນຸຍາດໃຫ້ປະມວນຜົນທໍ່ພິກເຊລຮູບພາບກາງ (ເຕັມ). ໃນທຳນອງດຽວກັນ ອຸປະກອນ d,e,f... ສາມາດປະມວນຜົນທໍ່ພິກເຊລຕົວຢ່າງ, ອຸປະກອນ g,h,i... ປະມວນຜົນທໍ່ພິກເຊລສົ່ງອອກ, ອຸປະກອນ j,k,l... ປະມວນຜົນທໍ່ພິກເຊລຮູບຍໍ້ ແລະ ສຸດທ້າຍອຸປະກອນ m,n,o... ປະມວນຜົນທໍ່ພິກເຊລຕົວຢ່າງສຳລັບໜ້າຕ່າງທີສອງ. ຊ່ອງຫວ່າງໝາຍຄວາມວ່າບໍ່ມີອຸປະກອນ OpenCL ໃດທີ່ຈະຮັບໃຊ້ທໍ່ປະມວນຜົນປະເພດນັ້ນ.

darktable ມີລະບົບໝາຍເລກພາຍໃນ, ໂດຍທີ່ອຸປະກອນ OpenCL ທຳອິດທີ່ມີຢູ່ຈະໄດ້ຮັບໝາຍເລກ 0. ອຸປະກອນຕໍ່ໆໄປທັງໝົດຈະຖືກໃຫ້ໝາຍເລກລຽງກັນໄປ. ໝາຍເລກນີ້, ພ້ອມກັບຊື່ອຸປະກອນ, ຈະຖືກສະແດງເມື່ອທ່ານເລີ່ມ darktable ດ້ວຍຄຳສັ່ງ darktable -d opencl. ທ່ານສາມາດກຳນົດອຸປະກອນໄດ້ທັງດ້ວຍໝາຍເລກ ຫຼື ດ້ວຍຊື່ມາດຕະຖານຂອງມັນ (ຕົວອັກສອນໃຫຍ່/ນ້ອຍ ແລະ ຍະຫວ່າງແມ່ນບໍ່ສຳຄັນ). ຖ້າທ່ານມີຫຼາຍກວ່າໜຶ່ງອຸປະກອນທີ່ມີຊື່ດຽວກັນ ທ່ານຈໍາເປັນຕ້ອງໃຊ້ໝາຍເລກອຸປະກອນເພື່ອແຍກຄວາມແຕກຕ່າງຂອງພວກມັນ.

ຕົວລະບຸອຸປະກອນສາມາດໃສ່ເຄື່ອງໝາຍທ້ວງ ! ໄວ້ທາງໜ້າ, ໃນກໍລະນີນັ້ນອຸປະກອນຈະຖືກຍົກເວັ້ນຈາກການປະມວນຜົນທໍ່ພິກເຊລທີ່ກຳນົດ. ທ່ານຍັງສາມາດໃຊ້ດອກຈັນ * ເປັນຕົວແທນ (wildcard), ເຊິ່ງແທນອຸປະກອນທັງໝົດທີ່ບໍ່ໄດ້ກ່າວເຖິງຢ່າງຊັດເຈນໃນກຸ່ມນັ້ນມາກ່ອນ.

ລຳດັບພາຍໃນກຸ່ມແມ່ນສຳຄັນ – darktable ຈະອ່ານລາຍຊື່ຈາກຊ້າຍຫາຂວາ ແລະ ເມື່ອໃດກໍຕາມທີ່ມັນພະຍາຍາມກຳນົດອຸປະກອນ OpenCL ໃຫ້ກັບທໍ່ພິກເຊລ ມັນຈະກວດສອບອຸປະກອນຕາມລຳດັບນັ້ນ, ແລະ ຈະເລືອກອຸປະກອນທຳອິດທີ່ວ່າງ.

ຖ້າຂະບວນການທໍ່ພິກເຊລກຳລັງຈະເລີ່ມຕົ້ນ ແລະ GPU ທັງໝົດໃນກຸ່ມທີ່ກ່ຽວຂ້ອງກຳລັງເຮັດວຽກຢູ່, darktable ຈະປະມວນຜົນຮູບພາບໃນ CPU ໂດຍອັດຕະໂນມັດຕາມຄ່າເລີ່ມຕົ້ນ. ທ່ານສາມາດບັງຄັບໃຫ້ປະມວນຜົນດ້ວຍ GPU ໄດ້ໂດຍການໃສ່ເຄື່ອງໝາຍບວກ + ໄວ້ທາງໜ້າລາຍຊື່ GPU ທີ່ໄດ້ຮັບອະນຸຍາດ. ໃນກໍລະນີນັ້ນ darktable ຈະບໍ່ໃຊ້ CPU ແຕ່ຈະຢຸດການປະມວນຜົນຊົ່ວຄາວຈົນກວ່າຈະມີອຸປະກອນ OpenCL ທີ່ໄດ້ຮັບອະນຸຍາດອັນຕໍ່ໄປວ່າງ.

darktable’s default setting for “opencl_device_priority” is */!0,*/*/*/!0,*.

ອຸປະກອນ OpenCL ໃດໆທີ່ກວດພົບແມ່ນໄດ້ຮັບອະນຸຍາດໃຫ້ປະມວນຜົນຮູບພາບມຸມມອງກາງ. ອຸປະກອນ OpenCL ທຳອິດ (0) ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ປະມວນຜົນທັງສອງທໍ່ພິກເຊລຕົວຢ່າງ. ຜົນກໍຄື, ຖ້າມີ GPU ພຽງອັນດຽວໃນລະບົບຂອງທ່ານ, ທໍ່ພິກເຊລຕົວຢ່າງຈະຖືກປະມວນຜົນໃນ CPU ສະເໝີ, ເພື່ອເກັບ GPU ອັນດຽວຂອງທ່ານໄວ້ສຳລັບມຸມມອງຮູບພາບກາງທີ່ຕ້ອງການພະລັງຫຼາຍກວ່າ. ນີ້ແມ່ນການຕັ້ງຄ່າທີ່ສົມເຫດສົມຜົນສຳລັບລະບົບສ່ວນໃຫຍ່. ບໍ່ມີຂໍ້ຈຳກັດດັ່ງກ່າວກັບທໍ່ພິກເຊລສົ່ງອອກ ແລະ ຮູບຍໍ້.

ຄ່າເລີ່ມຕົ້ນແມ່ນທາງເລືອກທີ່ດີຖ້າທ່ານມີພຽງອຸປະກອນດຽວ. ຖ້າທ່ານມີຫຼາຍອຸປະກອນ ມັນກໍເປັນຈຸດເລີ່ມຕົ້ນທີ່ສົມເຫດສົມຜົນ. ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກອຸປະກອນຂອງທ່ານອາດຈະມີລະດັບພະລັງການປະມວນຜົນທີ່ແຕກຕ່າງກັນຫຼາຍ, ມັນຈຶ່ງຄຸ້ມຄ່າທີ່ຈະໃຊ້ເວລາໃນການປັບແຕ່ງລາຍຊື່ລຳດັບຄວາມສຳຄັນຂອງທ່ານ.

ນີ້ແມ່ນຕົວຢ່າງ. ສົມມຸດວ່າພວກເຮົາມີລະບົບທີ່ມີສອງອຸປະກອນ, Nvidia Quadro RTX 4000 ທີ່ໄວ ແລະ GeForce GTX 1050 ທີ່ຊ້າກວ່າ. darktable (ທີ່ເລີ່ມດ້ວຍ darktable -d opencl) ຈະລາຍງານອຸປະກອນດັ່ງນີ້:

[opencl_init] ເລີ່ມຕົ້ນສຳເລັດ.
[opencl_init] ນີ້ແມ່ນໝາຍເລກພາຍໃນ ແລະ ຊື່ຂອງ
                          ອຸປະກອນ OpenCL ທີ່ມີໃຫ້ darktable:
[opencl_init]           0       'NVIDIA GeForce GTX 1050'
[opencl_init]           1       'NVIDIA CUDA Quadro RTX 4000'
[opencl_init] ສຸດທ້າຍ: opencl ສາມາດໃຊ້ໄດ້ (AVAILABLE) ໃນລະບົບນີ້.

ໂດຍມີຊື່ມາດຕະຖານທີ່ສະແດງຂ້າງເທິງເປັນ nvidiagforcegtx1050 ແລະ nvidiacudaquadrortx4000.

ໃນທີ່ນີ້, GeForce GTX 1050 ຖືກກວດພົບເປັນອຸປະກອນທຳອິດ ແລະ Quadro RTX 4000 ເປັນອຸປະກອນທີສອງ. ປົກກະຕິລຳດັບນີ້ຈະບໍ່ປ່ຽນແປງ ນອກຈາກວ່າຮາດແວ ຫຼື ການກຳນົດຄ່າໄດເວີຈະຖືກແກ້ໄຂ, ແຕ່ມັນກໍດີກວ່າທີ່ຈະໃຊ້ຊື່ອຸປະກອນແທນໝາຍເລກເພື່ອຄວາມປອດໄພ.

ເນື່ອງຈາກ GTX 1050 ຊ້າກວ່າ RTX 4000, ການຕັ້ງຄ່າ “opencl_device_priority” ທີ່ປັບແຕ່ງແລ້ວອາດຈະເປັນແບບນີ້:

!nvidiagforcegtx1050,*/!nvidiacudaquadrortx4000,*/nvidiacudaquadrortx4000,*/nvidiacudaquadrortx4000,*/!nvidiacudaquadrortx4000.

The GTX 1050 is explicitly excluded from processing the center image pixelpipe; this is reserved to “all” other devices (i.e. the RTX 4000). Conversely – for the preview pixelpipes – the RTX 4000, so that only the GTX 1050 is permitted to do the work.

ສຳລັບການສົ່ງອອກໄຟລ໌ ແລະ ການສ້າງຮູບຍໍ້ ພວກເຮົາຕ້ອງການໃຊ້ອຸປະກອນທັງໝົດທີ່ມີ. ຢ່າງໃດກໍຕາມ, darktable ຄວນກວດສອບກ່ອນວ່າອຸປະກອນ RTX 4000 ວ່າງຫຼືບໍ່, ເພາະມັນໄວກວ່າ. ຖ້າມັນບໍ່ວ່າງ, ອຸປະກອນອື່ນທັງໝົດ – ເຊິ່ງໃນຄວາມຈິງກໍຄືພຽງແຕ່ GTX 1050 – ຈະຖືກກວດສອບ.

translations