From patchwork Sun Dec 3 00:32:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Stubbs X-Patchwork-Id: 1870977 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SjSSZ55dXz1ySh for ; Sun, 3 Dec 2023 11:33:02 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B52E73861838 for ; Sun, 3 Dec 2023 00:33:00 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id 309D3385700F for ; Sun, 3 Dec 2023 00:32:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 309D3385700F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 309D3385700F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.137.252 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701563569; cv=none; b=LVLmUQhpYgu/pAj47cTczcdDcnY8Cjfk/9yKPD3FmVFsvyC2VWlNt3EW57hBYai7OOXUwT+4n2BzYA87mR3up9H3PsWu7SKanIzzp0PIe/JyKf5M5opLnWDhz7Zbuecjmekn5wSeue8fsPcyDjsa6mtCf7V7nG18lHywT4R0M0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701563569; c=relaxed/simple; bh=7BVWHXEwk6CwGw+VbNrS2t6U7UUBM1gzhqHMZLjF/Sw=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=HLqioEP1M6RYyH4otGgoqQJ5FqX4dIMWHK399b1rQV+SBA/pHbCzSyUTRNHARz+Q4+MwQN9DP3gKCcXBsf1Iht7pMmkv76d+YQZfNjiw2cChSZBqDrDdN3d6zM2BrKf56gq68iFBGQbeThioui7nb6CiTSaGV9mhO7on0Ayf1pM= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: fheKjpAFRpWd69u/jbGQGg== X-CSE-MsgGUID: jBX/87GWSXCf9p72RPNklQ== X-IronPort-AV: E=Sophos;i="6.04,246,1695715200"; d="scan'208";a="24279923" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa4.mentor.iphmx.com with ESMTP; 02 Dec 2023 16:32:47 -0800 IronPort-SDR: 4Du2vG5aDq1LYWkzLwJjEjF7HZVzMyPV4lEErS4/R16Mo86BOAfLsu4vXtswNxhC7fLwnmuqS6 S2GClzCfyGH98vXeoVbtVv0w1rs1y35A95r17bAYGvwoZMj392Zknbwoa8Cnlbj/kgQYOqKQyK miDgPq/HRY2XEkkpEzhSt3pjAn2LCqgS6/vHJFlznQJlvkAxqE8t0nAL3RIKTR62wnO6FOYRCO qaBiB2E/YYsAG7wAp3wNOg5llzw+TLXtRh5TN/oUr80vYGGhhSr4eIX9s1fsaUhq226AY1UIsx NZA= From: Andrew Stubbs To: Subject: [PATCH v3 0/3] libgomp: OpenMP low-latency omp_alloc Date: Sun, 3 Dec 2023 00:32:21 +0000 Message-ID: <20231203003224.1638841-1-ams@codesourcery.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org This patch series is a rework of the patch series posted in August. https://patchwork.sourceware.org/project/gcc/list/?series=23045&state=%2A&archive=both The series implements device-specific allocators and adds a low-latency allocator for both GPUs architectures. This time the omp_low_lat_mem_alloc does not work because the default traits are incompatible (GPU low-latency memory is not accessible to other teams). I've also included documentation and addressed the comments from Tobias's review. Andrew Andrew Stubbs (3): libgomp, nvptx: low-latency memory allocator openmp, nvptx: low-lat memory access traits amdgcn, libgomp: low-latency allocator gcc/config/gcn/gcn-builtins.def | 2 + gcc/config/gcn/gcn.cc | 16 +- libgomp/allocator.c | 266 +++++++----- libgomp/basic-allocator.c | 380 ++++++++++++++++++ libgomp/config/gcn/allocator.c | 127 ++++++ libgomp/config/gcn/libgomp-gcn.h | 6 + libgomp/config/gcn/team.c | 12 + libgomp/config/nvptx/allocator.c | 141 +++++++ libgomp/config/nvptx/team.c | 18 + libgomp/libgomp.h | 3 - libgomp/libgomp.texi | 40 +- libgomp/plugin/plugin-gcn.c | 35 +- libgomp/plugin/plugin-nvptx.c | 23 +- libgomp/testsuite/libgomp.c/omp_alloc-1.c | 66 +++ libgomp/testsuite/libgomp.c/omp_alloc-2.c | 72 ++++ libgomp/testsuite/libgomp.c/omp_alloc-3.c | 49 +++ libgomp/testsuite/libgomp.c/omp_alloc-4.c | 197 +++++++++ libgomp/testsuite/libgomp.c/omp_alloc-5.c | 71 ++++ libgomp/testsuite/libgomp.c/omp_alloc-6.c | 118 ++++++ .../testsuite/libgomp.c/omp_alloc-traits.c | 66 +++ 20 files changed, 1595 insertions(+), 113 deletions(-) create mode 100644 libgomp/basic-allocator.c create mode 100644 libgomp/config/gcn/allocator.c create mode 100644 libgomp/config/nvptx/allocator.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-1.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-2.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-3.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-4.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-5.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-6.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-traits.c