wiki:ZeroEmissionHeating

Version 21 (modified by Rick van der Zwet, 5 years ago) ( diff )

--

TODO: Wrap-up result and rewrite result

Fact to consider, adding 'structural' solution like geo-thermal will also increase home value.

Introduction

Warning: Work in process document does not reflect my latest results

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 Waste Hierarchy ladder, than Recycling or Disposal.
  • The computing power could be used for the common cause, by calculating for science projects using 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 …

  • Air source heat pump; They make quite some noise and annoy the neighbours.
  • Geothermal heat pump; Large investment and not scalable without good planning and coordination with neighbourhood.
  • 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 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 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:
   <Out-Of-Scope>

 
 # 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/ <account_id>

 # 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:
    <Out-Of-Scope>

  # 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/ <account_id>

 # 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 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.
  2. Isolate working area and protect other sensitive parts from burning by putting capton tape on the PCB around the GPU.
  3. 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.
  4. 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.
  5. Allow cooling to room temperature without the use of forced cooling.
  6. 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.
  7. Clean-up your stuff and try your card.
  8. 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 <http://gnu.org/licenses/gpl.html>
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:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
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
<suspend>
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 '<no_rsc>' 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

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.