{"action":"created","issue":{"url":"https://api.github.com/repos/gcp/leela-zero/issues/1973","repository_url":"https://api.github.com/repos/gcp/leela-zero","labels_url":"https://api.github.com/repos/gcp/leela-zero/issues/1973/labels{/name}","comments_url":"https://api.github.com/repos/gcp/leela-zero/issues/1973/comments","events_url":"https://api.github.com/repos/gcp/leela-zero/issues/1973/events","html_url":"https://github.com/gcp/leela-zero/issues/1973","id":376244942,"node_id":"MDU6SXNzdWUzNzYyNDQ5NDI=","number":1973,"title":"--full-tuner can do 3 tunings instead of 1 or 2","user":{"login":"liujn2018","id":38339308,"node_id":"MDQ6VXNlcjM4MzM5MzA4","avatar_url":"https://avatars0.githubusercontent.com/u/38339308?v=4","gravatar_id":"","url":"https://api.github.com/users/liujn2018","html_url":"https://github.com/liujn2018","followers_url":"https://api.github.com/users/liujn2018/followers","following_url":"https://api.github.com/users/liujn2018/following{/other_user}","gists_url":"https://api.github.com/users/liujn2018/gists{/gist_id}","starred_url":"https://api.github.com/users/liujn2018/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liujn2018/subscriptions","organizations_url":"https://api.github.com/users/liujn2018/orgs","repos_url":"https://api.github.com/users/liujn2018/repos","events_url":"https://api.github.com/users/liujn2018/events{/privacy}","received_events_url":"https://api.github.com/users/liujn2018/received_events","type":"User","site_admin":false},"labels":[{"id":729737320,"node_id":"MDU6TGFiZWw3Mjk3MzczMjA=","url":"https://api.github.com/repos/gcp/leela-zero/labels/bug","name":"bug","color":"ee0701","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":16,"created_at":"2018-11-01T03:58:19Z","updated_at":"2018-11-02T23:14:42Z","closed_at":null,"author_association":"NONE","body":"I have downloaded the latest source and compiled on google colab.\r\nHowever, when I did the full tuner, the tuner process ran again and again.\r\n\r\nMy command is:\r\n`!cd run_lz_in_gg && ./leelaz -w networks/2da87ea8da0f54e87b70159e6bb82811b61d1c31091b6e019fbe62aeaa803b9c.gz --full-tuner\r\n`\r\n\r\nThe output is:\r\n`Using 2 thread(s).\r\nRNG seed: 11407022574244404640\r\nLeela Zero 0.16  Copyright (C) 2017-2018  Gian-Carlo Pascutto and contributors\r\nThis program comes with ABSOLUTELY NO WARRANTY.\r\nThis is free software, and you are welcome to redistribute it\r\nunder certain conditions; see the COPYING file for details.\r\n\r\nBLAS Core: built-in Eigen 3.3.5 library.\r\nDetecting residual layers...v1...256 channels...40 blocks.\r\nInitializing OpenCL (autodetecting precision).\r\nDetected 1 OpenCL platforms.\r\nPlatform version: OpenCL 1.2 CUDA 9.2.176\r\nPlatform profile: FULL_PROFILE\r\nPlatform name:    NVIDIA CUDA\r\nPlatform vendor:  NVIDIA Corporation\r\nDevice ID:     0\r\nDevice name:   Tesla K80\r\nDevice type:   GPU\r\nDevice vendor: NVIDIA Corporation\r\nDevice driver: 396.44\r\nDevice speed:  823 MHz\r\nDevice cores:  13 CU\r\nDevice score:  1112\r\nSelected platform: NVIDIA CUDA\r\nSelected device: Tesla K80\r\nwith OpenCL 1.2 capability.\r\nHalf precision compute support: No.\r\nDetected 1 OpenCL platforms.\r\nPlatform version: OpenCL 1.2 CUDA 9.2.176\r\nPlatform profile: FULL_PROFILE\r\nPlatform name:    NVIDIA CUDA\r\nPlatform vendor:  NVIDIA Corporation\r\nDevice ID:     0\r\nDevice name:   Tesla K80\r\nDevice type:   GPU\r\nDevice vendor: NVIDIA Corporation\r\nDevice driver: 396.44\r\nDevice speed:  823 MHz\r\nDevice cores:  13 CU\r\nDevice score:  1112\r\nSelected platform: NVIDIA CUDA\r\nSelected device: Tesla K80\r\nwith OpenCL 1.2 capability.\r\nHalf precision compute support: No.\r\n\r\nStarted OpenCL SGEMM tuner.\r\nWill try 5355 valid configurations.\r\n(1/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=16 NDIMB=8 NDIMC=8 NWG=16 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.7798 ms (151.3 GFLOPS)\r\n(2/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4100 ms (287.7 GFLOPS)\r\n(3/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4083 ms (288.9 GFLOPS)\r\n(87/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3289 ms (358.7 GFLOPS)\r\n(130/5355) KWG=32 KWI=8 MDIMA=32 MDIMC=16 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3166 ms (372.6 GFLOPS)\r\n(134/5355) KWG=32 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.2621 ms (450.1 GFLOPS)\r\n(139/5355) KWG=16 KWI=8 MDIMA=32 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.2610 ms (452.0 GFLOPS)\r\n(159/5355) KWG=32 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=4 VWN=1 0.2163 ms (545.3 GFLOPS)\r\n(296/5355) KWG=16 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=4 VWN=2 0.1923 ms (613.5 GFLOPS)\r\n(2361/5355) KWG=32 KWI=8 MDIMA=16 MDIMC=8 MWG=32 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=1 VWM=2 VWN=4 0.1903 ms (619.9 GFLOPS)\r\n(2370/5355) KWG=32 KWI=8 MDIMA=8 MDIMC=8 MWG=32 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=1 VWM=4 VWN=4 0.1852 ms (637.1 GFLOPS)\r\n(2711/5355) KWG=16 KWI=8 MDIMA=32 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=0 STRM=1 STRN=1 VWM=2 VWN=4 0.1818 ms (648.8 GFLOPS)\r\n(3652/5355) KWG=16 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=1 STRM=0 STRN=1 VWM=8 VWN=2 0.1817 ms (649.2 GFLOPS)\r\n(4602/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=1 STRM=1 STRN=0 VWM=4 VWN=2 0.1814 ms (650.1 GFLOPS)\r\nWavefront/Warp size: 32\r\nMax workgroup size: 1024\r\nMax workgroup dimensions: 1024 1024 64 \r\n\r\nStarted OpenCL SGEMM tuner.\r\nWill try 5355 valid configurations.\r\n(1/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=16 NDIMB=8 NDIMC=8 NWG=16 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.7486 ms (157.6 GFLOPS)\r\n(2/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4401 ms (268.1 GFLOPS)\r\n(17/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4366 ms (270.2 GFLOPS)\r\n(87/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.4358 ms (270.7 GFLOPS)\r\n(130/5355) KWG=32 KWI=8 MDIMA=32 MDIMC=16 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.4190 ms (281.6 GFLOPS)\r\n(134/5355) KWG=32 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3727 ms (316.5 GFLOPS)\r\n(139/5355) KWG=16 KWI=8 MDIMA=32 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3722 ms (317.0 GFLOPS)\r\n(204/5355) KWG=16 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=2 0.3668 ms (321.6 GFLOPS)\r\n(281/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=4 VWN=2 0.3532 ms (334.0 GFLOPS)\r\n(302/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=8 VWN=2 0.3529 ms (334.3 GFLOPS)\r\n(1371/5355) KWG=32 KWI=2 MDIMA=32 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.3374 ms (349.6 GFLOPS)\r\n(1443/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3170 ms (372.1 GFLOPS)\r\n(1457/5355) KWG=16 KWI=2 MDIMA=32 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3055 ms (386.2 GFLOPS)\r\n(1475/5355) KWG=16 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3049 ms (386.9 GFLOPS)\r\n(1501/5355) KWG=32 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=4 VWN=1 0.2848 ms (414.1 GFLOPS)\r\n(1608/5355) KWG=32 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=0 STRM=0 STRN=0 VWM=4 VWN=2 0.2805 ms (420.6 GFLOPS)\r\n(4123/5355) KWG=16 KWI=2 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=1 STRM=0 STRN=0 VWM=2 VWN=1 0.2776 ms (424.9 GFLOPS)\r\n(4260/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=1 STRM=0 STRN=0 VWM=2 VWN=2 0.2696 ms (437.6 GFLOPS)\r\n(4276/5355) KWG=16 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=1 SB=1 STRM=0 STRN=0 VWM=2 VWN=2 0.2618 ms (450.6 GFLOPS)\r\n(4284/5355) KWG=16 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=1 STRM=0 STRN=0 VWM=2 VWN=2 0.2534 ms (465.5 GFLOPS)\r\n(4302/5355) KWG=16 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=1 SB=1 STRM=0 STRN=0 VWM=8 VWN=2 0.2423 ms (486.8 GFLOPS)\r\nWavefront/Warp size: 32\r\nMax workgroup size: 1024\r\nMax workgroup dimensions: 1024 1024 64 \r\nUsing OpenCL single precision (less than 5% slower than half).\r\nDetected 1 OpenCL platforms.\r\nPlatform version: OpenCL 1.2 CUDA 9.2.176\r\nPlatform profile: FULL_PROFILE\r\nPlatform name:    NVIDIA CUDA\r\nPlatform vendor:  NVIDIA Corporation\r\nDevice ID:     0\r\nDevice name:   Tesla K80\r\nDevice type:   GPU\r\nDevice vendor: NVIDIA Corporation\r\nDevice driver: 396.44\r\nDevice speed:  823 MHz\r\nDevice cores:  13 CU\r\nDevice score:  1112\r\nSelected platform: NVIDIA CUDA\r\nSelected device: Tesla K80\r\nwith OpenCL 1.2 capability.\r\nHalf precision compute support: No.\r\n\r\nStarted OpenCL SGEMM tuner.\r\nWill try 5355 valid configurations.\r\n(1/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=16 NDIMB=8 NDIMC=8 NWG=16 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.5249 ms (224.8 GFLOPS)\r\n(2/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4124 ms (286.0 GFLOPS)\r\n(3/5355) KWG=32 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=1 VWN=1 0.4124 ms (286.1 GFLOPS)\r\n(87/5355) KWG=16 KWI=2 MDIMA=8 MDIMC=16 MWG=64 NDIMB=8 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3330 ms (354.3 GFLOPS)\r\n(130/5355) KWG=32 KWI=8 MDIMA=32 MDIMC=16 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.3140 ms (375.7 GFLOPS)\r\n(134/5355) KWG=32 KWI=8 MDIMA=8 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=2 VWN=1 0.2630 ms (448.5 GFLOPS)\r\n(159/5355) KWG=32 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=32 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=4 VWN=1 0.2172 ms (543.0 GFLOPS)\r\n(296/5355) KWG=16 KWI=8 MDIMA=16 MDIMC=8 MWG=64 NDIMB=16 NDIMC=8 NWG=32 SA=0 SB=0 STRM=0 STRN=0 VWM=4 VWN=2 0.1960 ms (602.0 GFLOPS)\r\n^C`"},"comment":{"url":"https://api.github.com/repos/gcp/leela-zero/issues/comments/435535896","html_url":"https://github.com/gcp/leela-zero/issues/1973#issuecomment-435535896","issue_url":"https://api.github.com/repos/gcp/leela-zero/issues/1973","id":435535896,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNTUzNTg5Ng==","user":{"login":"ihavnoid","id":33939814,"node_id":"MDQ6VXNlcjMzOTM5ODE0","avatar_url":"https://avatars3.githubusercontent.com/u/33939814?v=4","gravatar_id":"","url":"https://api.github.com/users/ihavnoid","html_url":"https://github.com/ihavnoid","followers_url":"https://api.github.com/users/ihavnoid/followers","following_url":"https://api.github.com/users/ihavnoid/following{/other_user}","gists_url":"https://api.github.com/users/ihavnoid/gists{/gist_id}","starred_url":"https://api.github.com/users/ihavnoid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihavnoid/subscriptions","organizations_url":"https://api.github.com/users/ihavnoid/orgs","repos_url":"https://api.github.com/users/ihavnoid/repos","events_url":"https://api.github.com/users/ihavnoid/events{/privacy}","received_events_url":"https://api.github.com/users/ihavnoid/received_events","type":"User","site_admin":false},"created_at":"2018-11-02T23:14:42Z","updated_at":"2018-11-02T23:14:42Z","author_association":"COLLABORATOR","body":"Half precision 'compute' is different - the normal 'half precision' is that it computes in single precision but does the memory storage in half precision - that is, half precision 'memory storage' support (this is supported on most GPUs with a reasonable device driver since early 2010s).  This is the mode that you are using on sabaki.\r\n\r\nThis time, this seems to be what happened:\r\n1) Full tuner on half precision\r\n2) Run was on auto detection - since there is no single precision tune result it runs the single precision tuning routines, while reusing the half precision tuning results from the full tuner.\r\n\r\nMy experience is that the number of flops for the matrix multiplication is similar for both single and half precision, while half precision is significantly faster because all the other routines are much faster."}}
{"actor":{"display_login":"ihavnoid"}}