Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rl9Wv-000PXB-Kk for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Mar 2024 15:31:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rl9Wu-00ACpx-3H for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Mar 2024 15:31:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rl9Wt-00ACpo-9F for pgsql-hackers@lists.postgresql.org; Fri, 15 Mar 2024 15:31:32 +0000 Received: from mgamail.intel.com ([192.198.163.17]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rl9Wo-004fI4-Rz for pgsql-hackers@lists.postgresql.org; Fri, 15 Mar 2024 15:31:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1710516688; x=1742052688; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=SoeJfi8HqF7Mmtympb+tCvAvzGlhE60FWoN9tpDBEgA=; b=ginerNDlMjdixodq+G31W8OC+MBXfJ8pNfRZs3XL35POxhrFjgkLlmxp 6+6rSAYYKesMWtekaOhbNculv+xAiABwReep+i09FF8TfLjm7uoYLcCAG ksuX/VxHyr7ZXjKfDlHPn8jbZf3/f5gJhBiB+YFwK6lcF7nmVrrCMXb0T 6ybn0uJQz2kCZpWpbtwTGfwRHU40mMixLNSK2BaOKbueJ2blz6L6Daby3 aTcZUiMhtH1JXgy4arYBfDeu9rwrjyjPgl8nye8wmRAMVaGlTYoDoAPj7 eTZIYydb4DkU5l1nplxagx7su+2tiaCzVqaGQgMcQTwXz6ZntYbYXfDvp g==; X-IronPort-AV: E=McAfee;i="6600,9927,11014"; a="5252018" X-IronPort-AV: E=Sophos;i="6.07,128,1708416000"; d="scan'208";a="5252018" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2024 08:31:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,128,1708416000"; d="scan'208";a="17405974" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 15 Mar 2024 08:31:26 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 15 Mar 2024 08:31:25 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 15 Mar 2024 08:31:25 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 15 Mar 2024 08:31:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EiDgqhC1UY1OfQIn3fQ1VJNtEsnKhIYOyMW2WxLZWDHvLfZjZmrJUDVxLwNn2BljgAoqvWQCHxorW8e/MR6JVvJtjjMIjD2jYF1yxG7S2gqpxqMNou0z7wCNLgUFLlwqOTn7Q6eOgTQ2CehogB5PXiINsHRijTjNBy2pPrsVF7WBpYaWF7nvVKJRXcXPHvU/xi2ppMsLK8zfTZZz7ruP1p1KGjvf5tJ20SvjqFkc1tV+SDT5DhMdfK7j7NiBxJ05we+iM5CMo2eEnclNvvwCI4xep+a/bcQHnlRng8Bsi4SqPUPKdQnRd+e80tBQvl8rjtCO8qpxkhwImLINt8+wxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0a+aSs4p9QXUQeB2kG9nYPJDQX9D66kJNIRGbMbPjjI=; b=afGa006808ZE0HKTxtBLWuy43xvgf554300RDxmvNDgbKYcKsb4HBSz/WXHO7RfZrmf5wOyZSbUZbWcWjYbeMboy02fh8GDxjZM1gmyCf4FKKycWtGmosp2nJWu4WmElU4lru/C5n0QKL64P8nJNTlfpbidIaOVaXBzoQGzCh4TGYt25MXQOXOrqdkMgjMWKWbgzQ0C08zH5GX5nPQIK0Md/LquEN64NqFWW2ODNQPCkDNPBAq2FV9bbybCdyl9nljKzuNLSkS9IEi9OuKqZlgY28ttmnNjuE2BpLvTJ2DlhFfolF0Xvcn2HdwPH5QavSnoKg0OxGlVhxgIXOepZdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL1PR11MB5304.namprd11.prod.outlook.com (2603:10b6:208:316::20) by IA1PR11MB6265.namprd11.prod.outlook.com (2603:10b6:208:3e7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.16; Fri, 15 Mar 2024 15:31:17 +0000 Received: from BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::c936:ecdc:757e:1a4b]) by BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::c936:ecdc:757e:1a4b%5]) with mapi id 15.20.7386.017; Fri, 15 Mar 2024 15:31:17 +0000 From: "Amonson, Paul D" To: Nathan Bossart CC: Andres Freund , Alvaro Herrera , "Shankaran, Akash" , Noah Misch , Tom Lane , "Matthias van de Meent" , "pgsql-hackers@lists.postgresql.org" Subject: RE: Popcount optimization using AVX512 Thread-Topic: Popcount optimization using AVX512 Thread-Index: AdoNliAXaie8RHrzTICrAiLVKKiYCgAsQKyAALaJTAAAAQ7nAAAAxSWAAAGNHgAAA/mZgAAeFdGAAZKQbBAAAw6egA3NuLcAAAvVM4ACbQuxsAAhlXkAAHPWMbAAAkOrAACYCUjgAAMc3wABvefW4AD8TV6wADf+AoAAmWkVgACOpocAAAl+RwAAJXNxYAAA1VoAAABadxAAZi2hAAAIeekAAMiJepAACPYvAAAbpMKQAJeTLYAAAHbzAA== Date: Fri, 15 Mar 2024 15:31:17 +0000 Message-ID: References: <20240304222118.GB3367383@nathanxps13> <20240305163730.GA3479896@nathanxps13> <20240307173318.GA455851@nathanxps13> <20240307213600.GA563369@nathanxps13> <20240312013436.GA1787866@nathanxps13> <20240315150611.GA3495582@nathanxps13> In-Reply-To: <20240315150611.GA3495582@nathanxps13> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5304:EE_|IA1PR11MB6265:EE_ x-ms-office365-filtering-correlation-id: 6201bc07-bb7e-46c0-481a-08dc4504f52a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: I2o637HnXcBsswSRs4L8yNB3GCxe6RNrXHMIwR/0gzqBEzp5FnZZFws0iwd4MQ6vquhvKfoeSxT8BhtSf0vhH3Ru9YhuHWDhwYmALbwiQ5AMdlPDcYzmSJ+1hdhRm3Jb9/N7/+wgA/3qO6LhozLODpu3TqWWOkj9CThpqLxJJEp3jGDOSJb6cCK99G96Q2dCvWaXbcqVxK/0h5z6R3lzwGK5MGXamThQ9cAWTqV7VUb7zT0xmUMyJjQEe6aXgyuBX88r9SPsMUtYWNspJy/Swxb63C2nT8dABFhaGLsOyBi1Z5cZSCn/9DgsdofpuhTcORngaAEX4kYcXtmNNkeYgcY93EynjNug8EjjD7i97NUFkWubPOjg7gaQW5NFe1FZHBVxSL8LvWXYT/6XSVCFJNPD+IBm4STr3UPFKCkSbkCOW3XcY8gGQib+IPJ6qpPTNJV3eqAw34YHuV5PosoG3+l7YWumQU3kYYmDceQrwuWZcYdI7Jndc0EG7YoOdOcPnz23Mnx6Vtzlf/XbPa9VBva0CGoH5RnkKUT68InlAjDDaCVBne21VIpc4w4j20/AP54+xhiQ6CBEuNfvgvOZW7cQ6sznfDo9cWdIHbv/LWhrul++JlUAadyZmyWUZ3yYwfufWrn9snxW7gVqN6kj02XJYUTBhPpfTWXk4KVXM3egYKvEjMmaIYe1V+rcRi5k2SztQAxSGwwcI/stHxBqaHO7U6wA22fGASQWdpQzGj8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5304.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(366007)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?4BYjaSGEtZjLE4Nl/k6w99DAXkgLefxrqqt6EMkIfWhIoFJH/mMYFoHoPu5U?= =?us-ascii?Q?bfIDXMbylKHxTlTmcsZiWZPEgxG4Y4isukzX4PIuR+jhRXyWdhjUN1bitZGk?= =?us-ascii?Q?XJ2C6PuP1gtLdJHD+Y7CIZydguIuh9u/W/5QQRiIKhhYzVFApHOTR9BDx2/0?= =?us-ascii?Q?pkbtqFLKPGD4uCKxfuxxNjRgB4O0EIzKM4hP0Lc5xfPEzVRfk0s/NIcqCx6I?= =?us-ascii?Q?k76hJ3Tu2/ClpcXqijhEsyffr1J7iNjs/kwyGmcO3GKnfjmEIAkjX0EX3I6M?= =?us-ascii?Q?nPFcvD2qx/TfokeM0pvIBq4u3k9W4EweDRheez/pspjF+fYmTho7ogaM+vLC?= =?us-ascii?Q?gYQm7aSxPcuXV9ReoGXke5oSHoST87yVEP4bsEEQk1AhTUDLSeT5k22sqLWe?= =?us-ascii?Q?0qbwyF1+y5Z41LFgUErUOcK+wP6PeiTUMEYBvq0e9pfIGzUtDQ7ue/D32DYF?= =?us-ascii?Q?bqqGXVXSdyk9jpoOFoWpFbTnHvABb2JbcnMTrCapTs13RCfCAnp9PK1WjzH+?= =?us-ascii?Q?HUl64Trs+FSySKkupjjINJ/jErZ8tFGRgoQ7KSCbReSrriGNHICVifgJnYYp?= =?us-ascii?Q?chg+oumgggsnKRaV1J/Se6Zx0R4EKcd8prUy2YoF4tPF9+U8qw/niqtlZ+XI?= =?us-ascii?Q?VZiDQrwAhii97YqYGskh5wYkB/SK3OdDPUKQvD6ATGAaClgc++vdLTlG51iq?= =?us-ascii?Q?O0zu0XK+DZWdbY44Z40Z74uDMyFlaBcH0YdOfemf6uSXJUxJw7sRoDwAPQCM?= =?us-ascii?Q?Th0gQ+SbK/R/MlUn6iGZwFV6Qepsb/+FA9JgvKBkV63/iRLLGNbr55Ldr5zM?= =?us-ascii?Q?hk0CWZTgE62vLai08mKCQYwGFJcBBdzuRn/BaO9rEp+acXRF6/jDKh0NufgU?= =?us-ascii?Q?Un1XH9thRQ/9BPTXOvbJaBm3v0bPcgDqkEfuD0DytsyWJfIn4Mf0LUry6Mku?= =?us-ascii?Q?4lABCaO6K708QdFWdEO5mRewHOqgZfuEJIUkqHihhFbkY1YH9ic6V4A8Q8rC?= =?us-ascii?Q?4n1iOSX+QZUYdcJBA+KzJTNyY4MPFzwnpN/QG04RVpyhIVwmA4cLEJfRbMms?= =?us-ascii?Q?cc7oHIbKdvYYm0hrDRjh3w4UNp9EGU+35YlK3oLy1De9nn/2+QL8liys5IwI?= =?us-ascii?Q?tJ6+DwanRRGpwnFfPJrJfPNZdP600ADg8DEfYXjUogXcW4gtDmI6PXfU5rlq?= =?us-ascii?Q?GwVXuUbWKU0Xd4L8vNhGtSiD+VPTIxQnWxrpXKiZo4OVzk/vuvExv5VkSSOp?= =?us-ascii?Q?/qTcfJA79aRfzMEPG7VXFcSID1wP+B+Az45W84olBKktTECoXN9g4JKUeEsC?= =?us-ascii?Q?EwIDrIawrNLkOhkIC8yOVlGIg7SAntagJhwFBtkTvMIMxzE0F0uQbRhUp2bs?= =?us-ascii?Q?EP4w6RlGWn3+7X7sJc69kItL1DP1wnKEDtzeQI78C/QPSVesWBHzFNONp3sC?= =?us-ascii?Q?dKfY0IN4Uqzh36FHxAORqX2285otxPVuY5l4BOTXGQ6re3U/UZWFwYpm69jx?= =?us-ascii?Q?cpGaE1+/vYQ69Bzc4HDjQvY8u1v7slKAIwdgpm4fmRP1OR4o1QUnX3t+q6vt?= =?us-ascii?Q?egsd26Wg6xJ3qyjk++lju7jYOB2s5SBxsq6if8gu?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5304.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6201bc07-bb7e-46c0-481a-08dc4504f52a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2024 15:31:17.4905 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: a7OBJFMoGD5jyoLK9fQL4TI/74/3BEz2D0k4Ota7oap0k5iM2W0+bXi4+xN0WBeV2fibr+Tg9A72S8UTk7pPlue1RNbjSlQKJ4FxWKbvFcA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6265 X-OriginatorOrg: intel.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > -----Original Message----- > From: Nathan Bossart > Sent: Friday, March 15, 2024 8:06 AM > To: Amonson, Paul D > Cc: Andres Freund ; Alvaro Herrera ip.org>; Shankaran, Akash ; Noah Misch > ; Tom Lane ; Matthias van de > Meent ; pgsql- > hackers@lists.postgresql.org > Subject: Re: Popcount optimization using AVX512 >=20 > Which test suite did you run? Those numbers seem potentially > indistinguishable from noise, which probably isn't great for such a large= patch > set. I ran... psql -c "select bitcount(column) from table;" ...in a loop with "column" widths of 84, 4096, 8192, and 16384 containing r= andom data. There DB has 1 million rows. In the loop before calling the se= lect I have code to clear all system caches. If I omit the code to clear sy= stem caches the margin of error remains the same but the improvement percen= t changes from 1.2% to 14.6% (much less I/O when cached data is available). > I ran John Naylor's test_popcount module [0] with the following command o= n > an i7-1195G7: >=20 > time psql postgres -c 'select drive_popcount(10000000, 1024)' >=20 > Without your patches, this seems to take somewhere around 8.8 seconds. > With your patches, it takes 0.6 seconds. (I re-compiled and re-ran the t= ests a > couple of times because I had a difficult time believing the amount of > improvement.) When I tested the code outside postgres in a micro benchmark I got 200-300%= improvements. Your results are interesting, as it implies more than 300% i= mprovement. Let me do some research on the benchmark you referenced. Howeve= r, in all cases it seems that there is no regression so should we move forw= ard on merging while I run some more local tests? Thanks, Paul