[[PageOutline(1-5,Contents,pullout)]] = Introduction = Zero Emission Heating is a research project which uses left-over processing power from old computer equipment to transform Green Energy (generated using Wind & Solar Power) to heat. This yields to the following benefits: * The 'high quality' energy has a dual purpose, instead of directly converting it to heat. * Reuse of equipment is placed higher on the [https://en.wikipedia.org/wiki/Waste_hierarchy Waste Hierarchy] ladder, than Recycling or Disposal. * The computing power could be used for the common cause, by calculating for science projects using [https://boinc.berkeley.edu/ BOINC]. * The use of computers allows advanced smart management; for example only heat when prices are low or scale down heating (computation) to a lower level. = Approach = I have an old PC with additional GPU, how-ever running this at full capacity does not yield enough heat to fully heat my home, so I properly needs to be running multiple machines and find good solutions for the noise produced. This only works with Zero Emission Energy; I have solar panels mounted on the roof and bought a stake in wind-power to have power available from different sources. = Costs = Environment costs are a factor to consider when switching to full electric power. Yet what does it cost? Tarifs for The Netherlands are listed: * 1kWh electricity costs 22ct (5ct w/o VAT) * 1m3 natural gas costs 68ct (20ct w/o VAT) 1m3 natural gas produces roughly 37 MJ of heat, 1kWh electricity produces roughly 3.6MJ, thus you will need 10kWh electricity to produce the same amount of heat as 1m3 natural gas. Thus the overall comparison yields: * 10kWh electricity costs 220ct (50ct w/o VAT) * 1m3 natural gas costs 68ct (20ct w/o VAT) Heating with electricity in the Netherlands is 3.5 (2.5 w/o VAT) times more expensive than natural gas. How-ever since natural gas is 'deprecated' the prices are expected to rise steady where-as prices for electricity are going down. I consider this extra costs 'Environment Protection', which I believe should be factored into more decisions. = Why not use ... = * [https://en.wikipedia.org/wiki/Air_source_heat_pumps Air source heat pump]; They make quite some noise and annoy the neighbours. * [https://en.wikipedia.org/wiki/Geothermal_heat_pump Geothermal heat pump]; Large investment and not scalable without good planning and coordination with neighbourhood. * [https://en.wikipedia.org/wiki/District_heating District heating]; Transporting excess heat requires a large infrastructure, spending the same amount on improving the electricity grid allows for more re-use possibilities. = Kickback = By using [https://gridcoin.us/ Gridcoin (GRC)] you could get a small rebate of the costs required to run the equipment. How-ever personally I do not favor this kind of 'kickback' mechanisms anymore. They have every different goal compared to the research targets. Which means time and effort needs to be spend to battle fraud, abuse and unfair load sharing instead of time used for research purposes. I have seen projects loosing quite some resource power since they did not make decisions which would please the large stakeholders of such coins. Science cannot be done with all kind of constrains, you either believe in the cause and are willing to support it. Attaching all kind of strings does not allow fundamental research to take place. = Challenges = It comes with the following challenges: * Running (old) computers requires time & effort in order to keep them running. * Spare parts needs to be around to be able to cope with failures. * Drivers for old GPU hardware are sometimes hard to get to work. = Join the cause = Find 'Team Zero Emission Heating' in your favourite BOINC project and join the team to promote our effort. = Similar projects = * Start-up [https://www.nerdalize.com/ Nerdalize] is using computing power to heat tap-water. = Test Setup 1 = Hardware configuration: * 3 x NVIDIA Quadro 4000 * Intel Quad Core * 4GB DDR3 RAM * 750W Crossair power supply * PCI-Express 4 port riser board * Intel motherboard {{{ # Install Ubuntu 16.04 Server LTS amd64: # Update system to latest version: $ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo reboot # Unload nouveau driver (causes trouble during NVIDIA install): $ sudo rmmod nouveau # Install NVIDIA drivers legacy 390.87 drivers: $ sudo apt-get install build-essential $ chmod 755 NVIDIA-Linux-x86_64-390.87.run $ sudo ./NVIDIA-Linux-x86_64-390.87.run $ sudo update-initramfs -u $ sudo reboot # Install helper software for GPU testing: $ sudo apt-get install clinfo opencl-headers git $ git clone https://github.com/ihaque/memtestCL.git $ cd memtestCL/ $ make -f Makefiles/Makefile.linux64 # GPU testing and status utilities: $ ./memtestCL $ clinfo $ nvidia-smi # Install BOINC software: $ sudo apt-get install boinc-client boinctui $ sudo systemctl start boinc-client # Configure BOINC software: $ boinccmd --project_attach http://einstein.phys.uwm.edu/ # Monitor BOINC software: $ boinctui }}} = Test Setup 2 = Hardware Setup: * 2 x Radeon HD7870 * 550W Power Supply * Dual-PCIe motherboard {{{ # Install standard Ubuntu 14.04.05 LTS amd64 Server edition: # Download fglrx binaries from: https://www.amd.com/en/support/graphics/amd-radeon-hd/ati-radeon-hd-5000-series/ati-radeon-hd-5770 # Make system up2date: $ sudo apt-get dist-upgrade # Install and load compatible kernel: $ sudo apt-get install linux-headers-3.19.0-80-generic linux-image-3.19.0-80-generic linux-image-extra-3.19.0-80-generic linux-tools-3.19.0-80-generic $ sudo apt-get remove linux-headers-4.4* linux-image-4.4* linux-image-extra-4.4* linux-tools-4.4* $ sudo reboot # Install fglrx (headless) drivers: $ sudo dpkg -i fglrx-core_15.201-0ubuntu1_amd64_UB_14.01.deb $ sudo apt-get install -f ls # Fix missing OpenCL symlink: $ cd /usr/lib $ sudo ln -s libOpenCL.so.1 libOpenCL.so # Fix for segfault for e.g. on 2nd invocation of clinfo: $ ar p fglrx_15.201-0ubuntu1_amd64_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default # Install helper software for GPU testing: $ sudo apt-get install clinfo opencl-headers git $ git clone https://github.com/ihaque/memtestCL.git $ cd memtestCL/ $ make -f Makefiles/Makefile.linux64 # GPU testing and status utilities: $ ./memtestCL $ clinfo $ nvidia-smi # Install BOINC software: $ sudo apt-get install boinc-client boinctui $ sudo systemctl start boinc-client # Configure BOINC software: $ boinccmd --project_attach http://einstein.phys.uwm.edu/ # Monitor BOINC software: $ boinctui }}} = Findings = * GPU's with less than 2GB RAM are not supported by many BOINC projects anymore * Software support for older videocards is lacking. AMD open source drivers do not support OpenCL, which is required for the computations. The NVIDIA drivers tends to be more easy to install. * Motherboards, RAM and GPUs are somehow cheap to source, how-ever high-power PSUs are not cheaply available. * Riser cards (used for crypto-mining) provide a cheap way to add extra GPUs to an system. * Case mounting is a large problem. When using non-standards hardware layouts, I am basically stuck making custom (wooden) casings. * Use SSD harddisk instead of old harddisk. You save 25 EUR, how-ever you gain quite some speed during install, booting and reliability. * Noise is a issue. Where-as it is not a very big problem when heating a room when not around and/or noisy environment. Anywhere else poses some issues. = Repairing PSUs = Repairing PSUs is very hard. Since components are very tightly spaced there is no room to make repairs, without actually destroying or removing other components. Parts which are easy repairable on SMPS (Switch Mode Power Supply) units are capacitors, fuses and some bridges. How-ever if some has failed it normally cascade into failure of other components as well. If you cannot repair the PSU by replacing the visible broken parts, I would consider it a lost cause. = Repairing GPUs = Repairing GPUs has been an art. I like the view of [https://www.youtube.com/watch?v=1AcEt073Uds Louis Rossmann] on the matter. He quite rightfully(?) mentions the fact that it is often not broken solder connection on the outside, yet rather a loose connection on the inside. The inner-bond connections becomes loose due to the stress of the videocard from constantly cooling and heating. I have put this to practice, by sourcing broken GPUs and attempt to repair them. The GPUs I source do still have a working image (with artifacts). With 5 cards of multiple vendors repaired, I have a 100 percent success-rate. The method I use: 1. Strip videocard, remove cooler, cooling paste. 1. Isolate working area and protect other sensitive parts from burning by putting capton tape on the PCB around the GPU. 1. Using a hot-air station Slowly heat GPU to around 160 degree Celsius. Measure temperature using multiple temperature sensors. It takes roughly 10 minutes to reach this level. Make sure your hot-air station is set to around 160-180 degree Celsius. Do not be tempted to use higher temperatures since you will most likely damage/move parts if solder start to melt. 1. Allow GPU to cool down by slowly removing the heat (e.g. 'cold' to 100 degree Celsius by setting the hot-air gun to 100 degree Celsius. 1. Allow cooling to room temperature without the use of forced cooling. 1. Re-apply cooling-paste; use some good stuff instead of the factory-crap. Also take into account less-is-more. The cooling-paste is only supposed to fill the microscopic small gaps of air between the copper-plating any other configuration will cause worst heat transfer and thus hotter electronics. 1. Clean-up your stuff and try your card. 1. Ensure cooling profile of the card is more stable e.g. let it run idle for a while before turning off the PC. Running an GPU at full-trottle and turning the system off, will cause a lot of stress on the electronics since it does not have time (no power = no cooling fans) to reach it 'happy' operation temperature, which is around 40-50 degree Celsius. == Misc === {{{ rick@uheat:~$ lspci -k -s 01:00.0 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 5770] Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 5770] Kernel driver in use: radeon Kernel modules: radeon rick@uheat:~$ clinfo Number of platforms 1 Platform Name Clover Platform Vendor Mesa Platform Version OpenCL 1.1 Mesa 18.0.5 Platform Profile FULL_PROFILE Platform Extensions cl_khr_icd Platform Extensions function suffix MESA Platform Name Clover Number of devices 0 NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Clover clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Clover clCreateContext(NULL, ...) [default] No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No devices found in platform ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.11 ICD loader Profile OpenCL 2.1 DKMS make.log for fglrx-core-15.201 for kernel 4.4.0-31-generic (x86_64) Tue Sep 18 21:39:19 CEST 2018 /usr/sbin/dkms: line 73: cd: /var/lib/dkms/fglrx/15.201/build: No such file or directory AMD kernel module generator version 2.1 doing Makefile based build for kernel 2.6.x and higher rm -rf *.c *.h *.o *.ko *.a .??* *.symvers make -C /lib/modules/4.4.0-31-generic/build SUBDIRS=/var/lib/dkms/fglrx-core/15.201/build/2.6.x modules make[1]: Entering directory `/usr/src/linux-headers-4.4.0-31-generic' CC [M] /var/lib/dkms/fglrx-core/15.201/build/2.6.x/firegl_public.o /var/lib/dkms/fglrx-core/15.201/build/2.6.x/firegl_public.c:194:22: fatal error: asm/i387.h: No such file or directory #include "asm/i387.h" ^ compilation terminated. make[2]: *** [/var/lib/dkms/fglrx-core/15.201/build/2.6.x/firegl_public.o] Error 1 make[1]: *** [_module_/var/lib/dkms/fglrx-core/15.201/build/2.6.x] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-4.4.0-31-generic' make: *** [kmod_build] Error 2 build failed with return value 2 # Install standard Ubuntu 14.04.05 LTS amd64 Server edition. # Download fglrx binaries from: https://www.amd.com/en/support/graphics/amd-radeon-hd/ati-radeon-hd-5000-series/ati-radeon-hd-5770 # [optional] Make system up2date sudo apt-get dist-upgrade # Install and load compatible kernel sudo apt-get install linux-headers-3.19.0-80-generic linux-image-3.19.0-80-generic linux-image-extra-3.19.0-80-generic sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.19.0-80-generic"/' /etc/default/grub sudo update-grub sudo reboot # Install fglrx (headless) drivers sudo dpkg -i fglrx-core_15.201-0ubuntu1_amd64_UB_14.01.deb sudo apt-get install -f # Fix for segfault for e.g. on 2nd invocation of clinfo: ar p fglrx_15.201-0ubuntu1_i386_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default # Fix missing OpenCL symlink (cd /tmp; ln -s libOpenCL.so.1 libOpenCL.so) # Load module modprobe fglrx sudo apt-get install boinc-amd-opencl rick@uheat:~$ boinccmd --lookup_account http://einstein.phys.uwm.edu/ info@rickvanderzwet.nl 'PlainText2018!E' status: Success poll status: operation in progress poll status: operation in progress poll status: operation in progress account key: 7358bdde713819037b3d3406e9558c4c rick@uheat:~$ boinccmd --project_attach http://einstein.phys.uwm.edu/ 7358bdde713819037b3d3406e9558c4c sudo apt-get install boinctui # Test if module is detected (sample output) rick@uheat:~$ clinfo | head -10 Number of platforms: 1 Platform Profile: FULL_PROFILE Platform Version: OpenCL 2.0 AMD-APP (1800.11) Platform Name: AMD Accelerated Parallel Processing Platform Vendor: Advanced Micro Devices, Inc. Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices Platform Name: AMD Accelerated Parallel Processing Number of devices: 2 rick@uheat:~$ strings /lib/modules/3.19.0-80-generic/updates/dkms/fglrx.ko | grep amd_ depends=amd_iommu_v2 amd_iommu_free_device amd_iommu_init_device amd_iommu_unbind_pasid amd_iommu_set_invalidate_ctx_cb amd_iommu_enable_device_erratum amd_iommu_device_info amd_iommu_set_invalid_ppr_cb amd_iommu_bind_pasid amd_iommu_bind_pasid amd_iommu_set_invalid_ppr_cb amd_iommu_device_info amd_iommu_enable_device_erratum amd_iommu_set_invalidate_ctx_cb amd_iommu_unbind_pasid amd_iommu_init_device amd_iommu_free_device rick@uheat:~$ find /lib/modules | grep amd_iommu_v2 /lib/modules/4.4.0-31-generic/kernel/drivers/iommu/amd_iommu_v2.ko /lib/modules/4.4.0-135-generic/kernel/drivers/iommu/amd_iommu_v2.ko rick@uheat:~$ less /boot/config- config-3.19.0-80-generic config-4.4.0-135-generic config-4.4.0-31-generic rick@uheat:~$ less /boot/config-3.19.0-80-generic rick@uheat:~$ sudo dpkg -S /lib/modules/4.4.0-135-generic/kernel/drivers/iommu/amd_iommu_v2.ko linux-image-extra-4.4.0-135-generic: /lib/modules/4.4.0-135-generic/kernel/drivers/iommu/amd_iommu_v2.ko rick@uheat:~$ clinfo Number of platforms: 1 Platform Profile: FULL_PROFILE Platform Version: OpenCL 2.0 AMD-APP (1800.11) Platform Name: AMD Accelerated Parallel Processing Platform Vendor: Advanced Micro Devices, Inc. Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices Platform Name: AMD Accelerated Parallel Processing Number of devices: 2 Device Type: CL_DEVICE_TYPE_GPU Vendor ID: 1002h Board name: Device Topology: PCI[ B#1, D#0, F#0 ] Max compute units: 10 Max work items dimensions: 3 Max work items[0]: 256 Max work items[1]: 256 Max work items[2]: 256 Max work group size: 256 Preferred vector width char: 16 Preferred vector width short: 8 Preferred vector width int: 4 Preferred vector width long: 2 Preferred vector width float: 4 Preferred vector width double: 0 Native vector width char: 16 Native vector width short: 8 Native vector width int: 4 Native vector width long: 2 Native vector width float: 4 Native vector width double: 0 Max clock frequency: 850Mhz Address bits: 32 Max memory allocation: 134217728 Image support: Yes Max number of images read arguments: 128 Max number of images write arguments: 8 Max image 2D width: 16384 Max image 2D height: 16384 Max image 3D width: 2048 Max image 3D height: 2048 Max image 3D depth: 2048 Max samplers within kernel: 16 Max size of kernel argument: 1024 Alignment (bits) of base address: 2048 Minimum alignment (bytes) for any datatype: 128 Single precision floating point capability Denorms: No Quiet NaNs: Yes Round to nearest even: Yes Round to zero: Yes Round to +ve and infinity: Yes IEEE754-2008 fused multiply-add: Yes Cache type: None Cache line size: 0 Cache size: 0 Global memory size: 536870912 Constant buffer size: 65536 Max number of constant args: 8 Local memory type: Scratchpad Local memory size: 32768 Max pipe arguments: 0 Max pipe active reservations: 0 Max pipe packet size: 0 Max global variable size: 0 Max global variable preferred total size: 0 Max read/write image args: 0 Max on device events: 0 Queue on device max size: 0 Max on device queues: 0 Queue on device preferred size: 0 SVM capabilities: Coarse grain buffer: No Fine grain buffer: No Fine grain system: No Atomics: No Preferred platform atomic alignment: 0 Preferred global atomic alignment: 0 Preferred local atomic alignment: 0 Kernel Preferred work group size multiple: 64 Error correction support: 0 Unified memory for Host and Device: 0 Profiling timer resolution: 1 Device endianess: Little Available: Yes Compiler available: Yes Execution capabilities: Execute OpenCL kernels: Yes Execute native function: No Queue on Host properties: Out-of-Order: No Profiling : Yes Queue on Device properties: Out-of-Order: No Profiling : No Platform ID: 0x7f17343f3430 Name: Juniper Vendor: Advanced Micro Devices, Inc. Device OpenCL C version: OpenCL C 1.2 Driver version: 1800.11 Profile: FULL_PROFILE Version: OpenCL 1.2 AMD-APP (1800.11) Extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_image2d_from_buffer_read_only cl_khr_spir cl_khr_gl_event Device Type: CL_DEVICE_TYPE_CPU Vendor ID: 1002h Board name: Max compute units: 2 Max work items dimensions: 3 Max work items[0]: 1024 Max work items[1]: 1024 Max work items[2]: 1024 Max work group size: 1024 Preferred vector width char: 16 Preferred vector width short: 8 Preferred vector width int: 4 Preferred vector width long: 2 Preferred vector width float: 4 Preferred vector width double: 2 Native vector width char: 16 Native vector width short: 8 Native vector width int: 4 Native vector width long: 2 Native vector width float: 4 Native vector width double: 2 Max clock frequency: 1596Mhz Address bits: 64 Max memory allocation: 1006837760 Image support: Yes Max number of images read arguments: 128 Max number of images write arguments: 64 Max image 2D width: 8192 Max image 2D height: 8192 Max image 3D width: 2048 Max image 3D height: 2048 Max image 3D depth: 2048 Max samplers within kernel: 16 Max size of kernel argument: 4096 Alignment (bits) of base address: 1024 Minimum alignment (bytes) for any datatype: 128 Single precision floating point capability Denorms: Yes Quiet NaNs: Yes Round to nearest even: Yes Round to zero: Yes Round to +ve and infinity: Yes IEEE754-2008 fused multiply-add: Yes Cache type: Read/Write Cache line size: 64 Cache size: 32768 Global memory size: 1006837760 Constant buffer size: 65536 Max number of constant args: 8 Local memory type: Global Local memory size: 32768 Max pipe arguments: 16 Max pipe active reservations: 16 Max pipe packet size: 1006837760 Max global variable size: 1006837760 Max global variable preferred total size: 1006837760 Max read/write image args: 64 Max on device events: 0 Queue on device max size: 0 Max on device queues: 0 Queue on device preferred size: 0 SVM capabilities: Coarse grain buffer: No Fine grain buffer: No Fine grain system: No Atomics: No Preferred platform atomic alignment: 0 Preferred global atomic alignment: 0 Preferred local atomic alignment: 0 Kernel Preferred work group size multiple: 1 Error correction support: 0 Unified memory for Host and Device: 1 Profiling timer resolution: 1 Device endianess: Little Available: Yes Compiler available: Yes Execution capabilities: Execute OpenCL kernels: Yes Execute native function: Yes Queue on Host properties: Out-of-Order: No Profiling : Yes Queue on Device properties: Out-of-Order: No Profiling : No Platform ID: 0x7f17343f3430 Name: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz Vendor: GenuineIntel Device OpenCL C version: OpenCL C 1.2 Driver version: 1800.11 (sse2) Profile: FULL_PROFILE Version: OpenCL 1.2 AMD-APP (1800.11) Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_spir cl_khr_gl_event sudo apt-get install opencl-headers https://laanwj.github.io/2016/05/06/opencl-ubuntu1604.html wget https://laanwj.github.io/assets/2016/05/06/opencl-ubuntu1604/devices.c gcc -o devices devices.c /usr/lib/libOpenCL.so.1 -std=c99 wget https://laanwj.github.io/assets/2016/05/06/opencl-ubuntu1604/hello.c gcc -o hello hello.c /usr/lib/libOpenCL.so.1 -std=c99 https://software.intel.com/en-us/articles/caps-basic [ 3967.208046] <6>[fglrx] Maximum main memory to use for locked dma buffers: 879 MBytes. [ 3967.208335] <6>[fglrx] vendor: 1002 device: 68b8 revision: 0 count: 1 [ 3967.208891] <6>[fglrx] ioport: bar 4, base 0xe000, size: 0x100 [ 3967.209302] <6>[fglrx] Kernel PAT support is enabled [ 3967.209323] <6>[fglrx] module loaded - fglrx 15.20.3 [Sep 8 2015] with 1 minors [ 3984.154399] <6>[fglrx] Try to set gart size 737M failed, should be within 64M and 448M. Discard the setting. [ 3984.160905] <6>[fglrx] Firegl kernel thread PID: 11464 [ 3984.160941] <6>[fglrx] Firegl kernel thread PID: 11465 [ 3984.160973] <6>[fglrx] Firegl kernel thread PID: 11466 [ 3984.161041] <6>[fglrx] IRQ 27 Enabled [ 3984.188853] <6>[fglrx] Reserved FB block: Shared offset:0, size:1000000 [ 3984.188855] <6>[fglrx] Reserved FB block: Unshared offset:fb70000, size:2000 [ 3984.188857] <6>[fglrx] Reserved FB block: Unshared offset:fb72000, size:18e000 [ 3984.188858] <6>[fglrx] Reserved FB block: Unshared offset:3fff3000, size:d000 [ 4497.364558] devices[11555]: segfault at 108 ip 00007f261c74c58f sp 00007ffcd8e78f50 error 4 in libatiadlxx.so[7f261c717000+a9000] rick@uheat:~$ gdb ./devices GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./devices...(no debugging symbols found)...done. (gdb) run Starting program: /home/rick/devices [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7e5f58f in ADL2_Send () from /usr/lib/libatiadlxx.so https://community.amd.com/thread/191438 Max allocation limit: 254803968 Global mem size: 1019215872 Error allocating device memory: 268435456 bytes (error: -61) g++ -std=c++0x main.cpp -o main.out -lOpenCL ./main.out sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm ./main.out === Dag, Ik heb interesse in de grafische kaart. Ik zou graag de kaart willen overnemen voor de gestelde vraagprijs + verzendkosten. Ik woon zelf in omgeving Leiden, dus versturen geniet mijn voorkeur. Met vriendelijke groet, Rick van der Zwet === https://scienceunited.org/wiki/PreferencesXml http://boinc.berkeley.edu/wiki/Preferences#Computing https://scienceunited.org/wiki/Client_configuration Radeon HD 5570 ~ G3D 1708 ~ Collatz task avg ~ 3.5h GT650M ~ G3D 1225 ~ 1.35 days GT630 ~ G3D 746 ~ 8.5h Radeon HD 7850 ~ ~ 1h GeForce GTX 1070 Ti ~ ~ 15m GeForce GTX 1070 ~ ~ 15m i7-3630QM ~ CPU Mark 7586 ~ 15 min/task Q8400 ~ CPU Mark 3173 ~ 23 min/task PSU + Motherboard + CPU ~ 200 Watt per systeem Radeon HD 5570 ~ TDP 61W GT630 ~ TDP 50 W - Nodig voor verwarmen woonkamer ~ 3kW - Dit is ongeveer 50 low-spec GPUs Prijs los systeem ~ 50 EUR ~ 500 EUR hardware. Basis systeem ~ 100 EUR PCI 1x to 4 SLOTS PCI-E 16X Extender ~ 15 EUR Riser Card Adapter module 8@piece ~ 24 EUR GPU low-grade 30@piece ~ 120 EUR ============================================== TOTAL ~ 240 EUR Total TDP ~ 400Watt - CUDA Compute capability - Performance versus power usage, versus money Card ~ G3D || Price || TDP || EUR/W || G3D/W || G3D/EUR -------------------------------------------------------------------------------- GeForce GTX 1080 Ti ~ 14061 || 850 EUR || 250W || 3.40 EUR || 56 G3D || GeForce GTX 1080 ~ 12309 || 550 EUR || 180W || 3.05 EUR || 68 G3D || Radeon RX 580 ~ 8404 || 200 EUR || 185W || 1.08 EUR || 45 G3D || GeForce GTX 1050 Ti ~ 5937 || 160 EUR || 75W || 2.13 EUR || 80 G3D || Radeon HD 7850 ~ 3838 || 50 EUR || 130W || 0.38 EUR || 29 G3D || Radeon HD 5570 ~ 1708 || ?? EUR || 61W || ?? EUR || 28 G3D || GeForce GT 650M ~ 1225 || ?? EUR || 45W || ?? EUR || 20 G3D || GeForce GT 630 ~ 746 || 30 EUR || 50W || 0.60 EUR || 15 G3D || http://www.timzaman.com/2012/05/opencv-gpu-cuda-performance-comparison/ https://www.techspot.com/article/1438-ethereum-mining-gpu-benchmark/ https://www.techradar.com/news/best-mining-gpu GeForce GT 630 - CC2.1 https://developer.nvidia.com/opencl === ^[[B^[[20~02-Oct-2018 22:34:17 [---] Fetching configuration file from https://www.grcpool.com/get_project_config.php 02-Oct-2018 22:34:18 [---] Contacting account manager at https://www.grcpool.com/ 02-Oct-2018 22:34:20 [---] [unparsed_xml] AM_ACCOUNT: unrecognized no_rsc Unrecognized XML tag '' in AM_ACCOUNT::parse; skipping outdated BOINC client ==== https://setiathome.berkeley.edu/forum_thread.php?id=74403 Command: # add-apt-repository ppa:costamagnagianfranco/boinc Command: # apt-get update Command: # apt-get install boinc-client ATI - collatz_sieve ~ 3.5h NVIDIA - collatz_sieve ~ 8h Good overview of NVIDIA version naming: https://forums.geforce.com/default/topic/946368/geforce-drivers/weird-glitchy-artifact-problem-please-help-/ NVIDIA memory check: https://developer.nvidia.com/CUDA-MEMCHECK https://github.com/ihaque/memtestCL dnf install opencl-headers g++ [ 40.952730] NVRM: GPU at PCI:0000:01:00: GPU-52b6f1af-58d9-a846-da29-d37b4411e133 [ 40.952736] NVRM: GPU Board Serial Number: 0322911063585 [ 40.952739] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 0, TPC 0): Out Of Range Register [ 40.956484] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 0, TPC 0): Physical Multiple Warp Errors [ 40.960277] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x504648=0x1000d 0x504650=0x4 0x504644=0x1beff2 0x50464c=0xf [ 40.964129] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 0, TPC 1): Out Of Range Register [ 40.967955] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 0, TPC 1): Physical Multiple Warp Errors [ 40.971800] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x504e48=0x1000d 0x504e50=0x4 0x504e44=0x1beff2 0x504e4c=0xf [ 40.975709] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 1, TPC 0): Out Of Range Register [ 40.979632] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 1, TPC 0): Physical Multiple Warp Errors [ 40.983574] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x50c648=0xd 0x50c650=0x4 0x50c644=0x1beff2 0x50c64c=0xf [ 40.987562] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 1, TPC 1): Out Of Range Register [ 40.991587] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 1, TPC 1): Physical Multiple Warp Errors [ 40.995653] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x50ce48=0x1000d 0x50ce50=0x4 0x50ce44=0x1beff2 0x50ce4c=0xf [ 40.999781] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 1, TPC 2): Out Of Range Register [ 41.003915] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 1, TPC 2): Physical Multiple Warp Errors [ 41.008119] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x50d648=0x1000d 0x50d650=0x4 0x50d644=0x1beff2 0x50d64c=0xf [ 41.012369] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 2, TPC 0): Out Of Range Register [ 41.016602] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 2, TPC 0): Physical Multiple Warp Errors [ 41.020869] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x514648=0x1000d 0x514650=0x4 0x514644=0x1beff2 0x51464c=0xf [ 41.025203] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 2, TPC 1): Out Of Range Register [ 41.029537] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 2, TPC 1): Physical Multiple Warp Errors [ 41.033881] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x514e48=0x1000d 0x514e50=0x4 0x514e44=0x1beff2 0x514e4c=0xf [ 41.038261] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Warp Exception on (GPC 2, TPC 2): Out Of Range Register [ 41.042632] NVRM: Xid (PCI:0000:01:00): 13, Graphics SM Global Exception on (GPC 2, TPC 2): Physical Multiple Warp Errors [ 41.047026] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ESR 0x515648=0x1000d 0x515650=0x4 0x515644=0x1beff2 0x51564c=0xf [ 41.051493] NVRM: Xid (PCI:0000:01:00): 13, Graphics Exception: ChID 0001, Class 000090c0, Offset 00001b0c, Data 00000000 [ 41.057410] NVRM: Xid (PCI:0000:01:00): 39, CCMDs 00000002 000090b5 https://www.nvidia.com/object/unix.html https://github.com/mpentler/boinctui-extended ncurses-devel expat-devel openssl-devel autoconf ./configure --without-gnutls 1 apt-get update 2 sudo apt-get update 3 sudo apt-get upgrade 4 sudo apt-get dist-upgrade 5 sudo reboot 6 ifconfig -a 7 ls 8 cd .ssh/ 9 ls 10 cat authorized_keys 11 vim authorized_keys 12 ls 13 cd 14 ls 15 chmod 755 NVIDIA-Linux-x86_64-390.87.run 16 sudo ./NVIDIA-Linux-x86_64-390.87.run 17 rmmod nouveau 18 sudo rmmod nouveau 19 sudo ./NVIDIA-Linux-x86_64-390.87.run 20 gcc 21 sudo apt-get install build-essential 22 sudo ./NVIDIA-Linux-x86_64-390.87.run 23 sudo reboot 24 nvidia-smi 25 sudo nvidia-smi 26 ls 27 lsmod 28 lsmod | grep nouveau 29 cat /etc/modprobe.d/nvidia-installer-disable-nouveau.conf 30 rmmod nouveau 31 sudo rmmod nouveau 32 ls 33 sudo modprobe nvidia 34 sudo nvidia-smi 35 top 36 ps au 37 ps aux 38 uname -a 39 lsb_release -a 40 sudo update-initramfs -u 41 history 39 lsb_release -a 40 sudo update-initramfs -u 41 history 42 sudo reboot 43 sudo nvidia-smi 44 sudo apt-get install boinc 45 sudo apt-cache search boinc 46 sudo apt-get install boinc-client 47 sudo apt-get install boinc-client boinctui 48 sudo clinfo 49 clinfo 50 sudo apt-get install clinfo 51 clinfo 52 ls 53 git clone https://github.com/ihaque/memtestCL.git 54 cd memtestCL/ 55 ls 56 make -f Makefiles/Makefile.linux64 57 sudo apt-cache search opencl 58 sudo apt-cache search opencl-headers 59 sudo apt-get install opencl-headers 60 make -f Makefiles/Makefile.linux64 61 ls 62 ./memtestCL 63 systemctl 64 sudo systemctl start boinc-client 65 boinccmd --project_attach http://einstein.phys.uwm.edu/ 7358bdde713819037b3d3406e9558c4c 66 boinctui 67 sudo nvidia-smi 68 history ==== sudo dpkg -i fglrx-core*.deb sudo apt-get install -f 1 sudo apt-get update 2 sudo apt-get dist-upgrade 3 sudo apt-cache search kernel 4 sudo apt-cache search kernel | less 5 sudo apt-cache search 3.19 6 sudo apt-cache search 3.19.0-80 7 sudo apt-get install linux-headers-3.19.0-80-generic 8 sudo apt-get install linux-image-3.19.0-80-generic 9 sudo apt-get install linux-image-extra-3.19.0-80-generic 10 sudo apt-get install linux-tools-3.19.0-80-generic 11 sudo reboot 12 dmesg 13 ifconfig -a 14 git clone https://github.com/ihaque/memtestCL.git 15 sudo apt-get install build-essential 16 sudo apt-get install git 17 git clone https://github.com/ihaque/memtestCL.git 18 sudo apt-get install opencl-headers 19 cd memtestCL/ 20 make -f Makefiles/Makefile.linux64 21 sudo apt-cache search openCL 22 ls 23 cd /usr/lib 24 ls 25 ln -s libOpenCL.so.1 libOpenCL.so 26 sudo ln -s libOpenCL.so.1 libOpenCL.so 27 ls -alh 28 cd ~/memtestCL/ 29 make -f Makefiles/Makefile.linux64 30 ./memtestCL 31 ls 32 gdb ./memtestCL 33 apt-get install gdb 34 sudo apt-get install gdb 35 history rick@uheat-amd:~/memte 33 apt-get install gdb 34 sudo apt-get install gdb 35 history 36 ls 37 sudo history 38 history 39 gdb ./memtestCL 40 ls 41 clinfo 42 top 43 ps aux 44 uname 45 top 46 ps aux | grep flg 47 lsmod 48 lsmod | grep fglrx 49 cd 50 ls 51 ar p fglrx_15.201-0ubuntu1_i386_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default 52 ar p fglrx-core_15.201-0ubuntu1_amd64_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default 53 ar p fglrx_15.201-0ubuntu1_i386_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default 54 ls 55 ar p fglrx_15.201-0ubuntu1_amd64_UB_14.01.deb data.tar.gz | sudo tar -C / -xzf - ./etc/ati/amdpcsdb.default 56 clinfo 57 ./memtestCL/memtestCL 58 history # DHEP project boinccmd --project_attach http://dhep.ga/boinc/ dad24ce8e9db0b9f0b03ce1fe9742096 https://einsteinathome.org/content/impossible-gpu-tasks-floating-point-received#comment-166880 }}}