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 1rqEke-00BKBD-1f for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Mar 2024 16:06:45 +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 1rqEkc-002goi-TY for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Mar 2024 16:06:42 +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 1rqEkb-002goP-VA for pgsql-hackers@lists.postgresql.org; Fri, 29 Mar 2024 16:06:42 +0000 Received: from mgamail.intel.com ([192.198.163.18]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rqEkX-0074lr-6l for pgsql-hackers@lists.postgresql.org; Fri, 29 Mar 2024 16:06:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1711728398; x=1743264398; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=9/pAuSGEXZyHtpLvl/LjtzGoc77zhh1QXvSPtPWT1ts=; b=NJ++eTomhFuwSBEC2sC7Aw0SC1WfOf827oBq9QOi2n9Sxo3k7M5iXscj w7TKHqgvW9X/vqRGEc48KfNHjGU+e5+XE0LAyY7SeltdgFMQfpc+hjOTr arCtqZfRsQjjbh/ZDewvD5mYf7HCSANEQSD5aEMGfLICoXIQFwgF2mj8I Egh4E8/QJrJ0V7ebyRHIhEWDoWUevrpdSID3bp4tPHot2r7DeuIV+7ocZ JcJuYN8QFJ/TvfYEocxUWyPz1eWlQkPGCoQbi/f9nS1pQeUoPxQ2o/XXC gZjNLEeeKFYSRHiUMIcklvdRG6WjuRSR7G3tNiF1zJ0rcNbUPdcHnDkoL Q==; X-CSE-ConnectionGUID: BwAhspscQSWavt/lmy8HNw== X-CSE-MsgGUID: ECAGqj4rT4qr3aafNegVzQ== X-IronPort-AV: E=McAfee;i="6600,9927,11028"; a="6753244" X-IronPort-AV: E=Sophos;i="6.07,165,1708416000"; d="scan'208";a="6753244" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2024 09:06:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,165,1708416000"; d="scan'208";a="21534059" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 29 Mar 2024 09:06:20 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 29 Mar 2024 09:06:20 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) 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, 29 Mar 2024 09:06:20 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 29 Mar 2024 09:06:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EC7e6npslyswalAXbkY/ruOG8LJPyMZTM9MGJ/KKuEFe7Sq/o16BUBkAR7qmrl3qcQm8lMuf1sdw/ey/7wpPwGHEFngZkQDOWmaNHrYVBPyZHqTd6Bt9Wfvckhhej+GJVhfPjqoqKi9xX3RHfWBQxt9+xGO3OMsCY8vE9hrUVPps+/zbRmsfg4OJAQ1KfEDfsRiwkLYCypNh/HoM9acMMhfVXzydoXjqZK8K5c6DcPn7tEhmHLoOscWr2QDajh/ukYvpJdPOEWtFJRxysoo2/JquiPTR1DL9fzO97Qt/fkq56cYSWDNMem+S7tiDPjlB/ILaF0Hjt41eZRn85mCPCA== 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=WOWdD/9gKrPCmc+Us7AYE/K0aZu4ZT9d+mLVm3iNBs4=; b=bT4RaMEMiGc3mpCHxOZexHwYqsLH0KY68AMlm3KxL1MwwESvqadNuvijTAnLv39QH5xpXKlM0fgg4mle1Jdy9V7jvitaOQA60gTc5VJg6WhfKuIy8sxz2H8QNBwwIhJOWp3YoVgTRVnQErnRY0aRH7/YuNwr+YK2PYzfLG/2i/UGQKKw+HvSgmxg+aMCVaUjr/3n7yFpoRsYNXu73wePOAGakMEvS7+KQLaGKpLcnFzFC6V884OT1hMRy2zFpVhfcsqrJVnwY+vn/3kxKFRrRqs6NWNEM7IPTfZeaKjKRo9Beu2hrUjmZ7cTDP2nUDzTRfmuqEy0xVgDCf6t4sFsiQ== 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 SJ1PR11MB6108.namprd11.prod.outlook.com (2603:10b6:a03:489::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Fri, 29 Mar 2024 16:06:18 +0000 Received: from BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::c3d7:736f:7cf2:4d0f]) by BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::c3d7:736f:7cf2:4d0f%4]) with mapi id 15.20.7409.031; Fri, 29 Mar 2024 16:06:17 +0000 From: "Amonson, Paul D" To: Nathan Bossart CC: Tom Lane , David Rowley , "Andres Freund" , Alvaro Herrera , "Shankaran, Akash" , Noah Misch , 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+RwAAJXNxYAAA1VoAAABadxAAZi2hAAAIeekAAMiJepAACPYvAAAbpMKQAJeTLYAAcNGUAAAm2oYAAAFGgCAAAIPdAAACb8MAAAdpgwAAADR0AAAAsQcAAAAMEoAAAWCPgAAC3eIAACrnWQAABeBEkAA1zxYAACb9mpAAwL24cAAATJYAAAAxGQAABx2FwABrjaAVAADz8kAAMJJ6AAAAVz0wACVAFYAAAEpZoA== Date: Fri, 29 Mar 2024 16:06:17 +0000 Message-ID: References: <2490633.1711379522@sss.pgh.pa.us> <20240325200551.GB2924132@nathanxps13> <20240327220010.GA231058@nathanxps13> <20240328213854.GA916732@nathanxps13> <20240329153515.GA1046039@nathanxps13> In-Reply-To: <20240329153515.GA1046039@nathanxps13> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5304:EE_|SJ1PR11MB6108:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bNh6xre9dhMCyvFatlrhv7ApEjELtC+rG+3sxrJ7C3SZQgKBTFkaM73yhcE6GCKi7HpI2+ylIbBy/g1ohjymvJs885AX2lvXkEQ7L/WIQDacXBjsuOatUoO//ILyDXED+EZI6w75IitfoJKr5epVVwr9a5r670AmhNelvvfOKQ2wHXq51QzYJySHQ3wGdo+hWuz3b7dKy5NWhP5wi+JoRC9mFNhVnBf44+6v0xnvafeqVD5BptpkVrJSgcbpCuEWpfN60yj1GBXA+YhBz9RWZXmC1QR8Z+KrXMQKW1N1MY4mU9mwxfzBKTYsazZsgiF8jfaPwuPOKX6zHD/ImsV44lsTHKrKh5d34vpcBoDacumy6IxnAFO/cJWWKT4vCeZ6zrfeRlL1Rda6g23bVRtvYROqoSUo9G3fRkAQ8EEKqGYzI/jtgEN79oJzP7STY4RIIDE1I+cSndILIPhyU1gJmitQAz4o8KZFwrHNmdPvW14m/Kz4KHui1Bv765YMt4YsW6Ts2Xg7qbOf1YJdfZ+nT5BCT8TDU+qwLyXSt41juL/HncMwxwcgWsucohq3htetpfyQ08wtbPnFWa6KHDx3lW+dZ3QMNIlKOYO1Xw0dUjKzbM9CInFoaBsbFLoRvQ1j1VHpD+2iYKixh2lCGHi+V8St99Rh2Rv8jefNlkgH3Fo= 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)(366007)(376005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?QTuwwsxjotbRkhZ0IlULlVKTwqTzCA2zKMG90Q19ZneO5kcMv3fNNHkBU2F3?= =?us-ascii?Q?kbWC8wi3KiW00tJL9JxOyew2OkfQmb0vBiKi0p7rXe24vJS7xG4QbsW/HoB6?= =?us-ascii?Q?QexPXSadh3K51ooJX67vhgjcBTArrWaUucRrPtxn3sscKSBLN861+1uXvcS0?= =?us-ascii?Q?sAjLOGVBq/MsUCq2sxr0fIZZU6XK4a7bD+LNaRGMMVm3m7Rqc27um5yLg1JM?= =?us-ascii?Q?Geoo9ZEXuaBJz0Yil/nEZrveFkep5SJTJPaoA+0wUFszdRDeejDyg/VHYSOg?= =?us-ascii?Q?Cb8abWc8Pd/e2p6epUPRv5ALmcCixRg763Dm1/U8HFyR1Y7G6LgyrXQ5lgoh?= =?us-ascii?Q?uodD8xZhfTiWx+hm370G7CP3lOttr38K7zlR2FEVEwCPE3YAg9Xrj3d0mjuz?= =?us-ascii?Q?waldfeX6E/9gNFK9aEEaen51GzzNLO/xkH5VHo8TCz8sYgYer+0kJLIwkIxl?= =?us-ascii?Q?tvqpYXiLC0weKsJkWF1yMThCv36BvSCWFDLvW2C/Otde2Byj48EP35fppnq0?= =?us-ascii?Q?w2uIy/OoPK90+eVdKQ00USJduBnSwdDmUvilKTYtYNzBqFZT63VRA5oTN3Lc?= =?us-ascii?Q?NsuSBwuddEepCRp0Z4m93oB1ZRVw8J27R+0OPxWfbDKQ72IvNwqOyxwGBP3C?= =?us-ascii?Q?frvwY+LnAb3hXPZG/HEKRf+Kw5ZPFGucOGZYFwRHDF5FBb3zXsH4fppEkhaQ?= =?us-ascii?Q?27sAQ5+L8M4lBPOnIpW+9/G7M4GLFKD00l8NO1C5cA72r8Q4HF5Vj4wM/8Iz?= =?us-ascii?Q?1nysb1QymyV2iL0rRh1fPkZDbnfmFN3OG5xykkxGni0Tud/1zFqupDbZfUS5?= =?us-ascii?Q?nSAnS14Vn5gLOrFIb/Cokp6TJCTobyuyuSMkUel/2705qLiUuIbxnf7LeJx5?= =?us-ascii?Q?+63wQzV+Fcv/wZUncaahYI6KfpbFGBzlpot+lYTe3l5g5o8KkdjIfBrJsEbp?= =?us-ascii?Q?ZyHaN4qG+KaE2XbkO/ihGNQYtmE6HXdNBL/Ry51+y060RJSyNf7lNAh0znl2?= =?us-ascii?Q?z4+cGT1oIMXXa9bWvS95M6MfPBLgxlQHQ0soq7OumwsK8JDrxyKehG87aExr?= =?us-ascii?Q?yejZenCQckh2wi4Ij30mq0fnPBY2og2E1xlSAPORclY83pLQfRaqUOWPkTPB?= =?us-ascii?Q?wf8bpk5PQoxRDDz7TZiiiJcPEGlXR0y/hVTGu/We42maUWcxiFQ2OsUHv1W2?= =?us-ascii?Q?3E4km3dZ1n9Fv3ABsti9dl5bkI1LQqw6tlZgdRiDuz+cD/Iq51FyKWf5+yz7?= =?us-ascii?Q?fXg56Mg4/IwdVF0tg6yRoRDAhuhh/sKghcmaJ+Qcw2NfV7eK4Qwd3ZLxFbiA?= =?us-ascii?Q?QXYeI4BDfdxUZAIZXiAcpjCz0a6x8Wf72hi3vduJUbTbZWZa5LJ7dOZnAEda?= =?us-ascii?Q?d0ETqboFRrrvQXNR57X6QVN8Kbx7kvHs3CD9uDq/PRQXI6xSuAfY6YkmrGcl?= =?us-ascii?Q?ILWnwLy8YWdiFw4YvP0h3jXSnI0eZTtLnvoJVcfHFQVJKw9FfR+/jR4ddy5c?= =?us-ascii?Q?UKMQUJgxkqGZBJBe9B8JTXCP2iQRlUpx1HGCrgkjzr/txULccPHEbclICzmI?= =?us-ascii?Q?SDP9QuiUztks4LQipA02fIzBh3muH4ophQ/nmyvT?= 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: 7745b093-094d-4753-1f63-08dc500a2add X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2024 16:06:17.8385 (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: gNBcdamUolLU+r3MKBsEDlr54/0doCXEDCPj4faV9/uTndIWu0SKB/WZWyJtJTz515WMnvmuaHo3fF3nW3skLqG7WFm0lv3EyjsjtADBkSc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR11MB6108 X-OriginatorOrg: intel.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > -----Original Message----- > > Cool. I think we should run the benchmarks again to be safe, though. Ok, sure go ahead. :) > >> I forgot to mention that I also want to understand whether we can > >> actually assume availability of XGETBV when CPUID says we support > >> AVX512: > > > > You cannot assume as there are edge cases where AVX-512 was found on > > system one during compile but it's not actually available in a kernel > > on a second system at runtime despite the CPU actually having the > > hardware feature. >=20 > Yeah, I understand that much, but I want to know how portable the XGETBV > instruction is. Unless I can assume that all x86_64 systems and compiler= s > support that instruction, we might need an additional configure check and= /or > CPUID check. It looks like MSVC has had support for the _xgetbv intrinsi= c for > quite a while, but I'm still researching the other cases. I see google web references to the xgetbv instruction as far back as 2009 f= or Intel 64 bit HW and 2010 for AMD 64bit HW, maybe you could test for _xge= tbv() MSVC built-in. How far back do you need to go? Thanks, Paul