[v4,0/9] GPU library
Message ID | 20211103191554.16449-1-eagostini@nvidia.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 29527A0C53; Wed, 3 Nov 2021 12:04:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A98E64115A; Wed, 3 Nov 2021 12:04:57 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2044.outbound.protection.outlook.com [40.107.244.44]) by mails.dpdk.org (Postfix) with ESMTP id 3C69D41134 for <dev@dpdk.org>; Wed, 3 Nov 2021 12:04:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fzs2NPQm2yfChzbmYxKhJT69vVg4BR/pHvhIp3UtUYH4kSCNrVkQmUjnNDha65FG+wjfoTpBvZRwOZWJc3qEX7J+CNtmT4jTdW2DkrThoB3XaplSHtktpoH+FvOO9B1rqMti/cTKHupvi+th8znXvl+NysrRttsQ1b2s1Rd0pZ1JZdBsyyqI4e4zpKxIyOVZbp4QdHxiUB/4KxKJIcPn7lLCSULL7tOruymkDDBgNaQHK64FXqet3Lw/5dfR99cwYhzNP9joP0+7v15ZZlB0By0DOM1K0HtXu7aTjvvPFpH9dKCp+OrP9AlkOwQTy4Cx0SohFXiPKj4eLSyAo6U6cQ== 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=9rqFA8he90Zva0DbOJdUAsLBTCu2jE7LRf3sj1l8jjU=; b=dE7Q97rmcBHXIfL/LV1Qj0PoeBNCwV52/5KD1sRwwdONIqWVgAgNSBbMjfmxA2Vw40+QDSbBlfMbxkTtEgAPM7EtpYfsNvvWepDzQ8r7Wsgg1FHrRpNkbovbsvIzitB4Skm9DwShvh64fjhG3Vu51OYExCOEeaA3C+tmPbr6bTto5qSki+BB93pWb34OJpL2yunYRs7WG6KSoqn0wFwL9BtjYegqo6VTleAX2bXTVEO9OkpJmdi8PDAGha5KmDnAm/fxIx7GrWXEEO5++pL7oEYc6Rbsjldf8Fek7pUR3+bT2FBOBljejL+gD2f9dW2FtdEXEmpK8ecTMt003OPGPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9rqFA8he90Zva0DbOJdUAsLBTCu2jE7LRf3sj1l8jjU=; b=KbA9OZzjNvfDLakui18uhdqoDWeIgPmFwHMAayclbCyT4UrvnWbCbuf85foN7Um+Ytc+tKQU3xHQA0tNxyUr8ZXtdJWirUubDuphNM18KtO9iGjbSVW8Rf4SjQOSVTDcVD33epIQ1dw4E8IHGUJRBNMdRyyGtgI41kXGERgAyxwNhIMHITbjaA9bznJjdb4pPKf71JfC9a6uWSm/GPXBWTI9c40xLDcHxEwlOAqVbtkTcW1hzhwshgLrIwK60KB8yZiOZPs1xiLGafi8EfGsUT92bKSf3jYASV5YbxpDoDmLrq9Sf5TaKj9nnVxo844MXM27nn9SM4DsSsgNV+E8Hg== Received: from DM6PR03CA0086.namprd03.prod.outlook.com (2603:10b6:5:333::19) by DM4PR12MB5086.namprd12.prod.outlook.com (2603:10b6:5:389::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Wed, 3 Nov 2021 11:04:54 +0000 Received: from DM6NAM11FT064.eop-nam11.prod.protection.outlook.com (2603:10b6:5:333:cafe::c9) by DM6PR03CA0086.outlook.office365.com (2603:10b6:5:333::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend Transport; Wed, 3 Nov 2021 11:04:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by DM6NAM11FT064.mail.protection.outlook.com (10.13.172.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4669.10 via Frontend Transport; Wed, 3 Nov 2021 11:04:54 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Wed, 3 Nov 2021 11:04:54 +0000 From: <eagostini@nvidia.com> To: <dev@dpdk.org> CC: Elena Agostini <eagostini@nvidia.com> Date: Wed, 3 Nov 2021 19:15:45 +0000 Message-ID: <20211103191554.16449-1-eagostini@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210602203531.2288645-1-thomas@monjalon.net> References: <20210602203531.2288645-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b3aeb3e4-3fe5-4eb9-69f9-08d99eb9c444 X-MS-TrafficTypeDiagnostic: DM4PR12MB5086: X-Microsoft-Antispam-PRVS: <DM4PR12MB5086EB5FB63273DBDEEC6266CD8C9@DM4PR12MB5086.namprd12.prod.outlook.com> X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: E/gxHEuzGUdPjjdnk1mh0taZlh24/0Da+6PDx2g8+31D6csYft/QTiTcydzji3tkkZwwfTQ67tQ7280hUyy5xgr+AkszuPEwiFdrmyvco1BSqfBznAtIXSNE67FuWwZSQzJCgp/Yosgg3kfmlynmPNyb2csxFhNMDlReCfvaKoH4sv8u+5aSkSsxuB2A3rngWJ6WJBaG4nEuEV5QY14TjqAsIut8dy/ZhzYUBlqrNeLjo9EqtwAAe37atL6mbiVi4tfkh766Rq6ZCg4F8KBAgGV0dx2VR8xjNS9ZAIrrAlN7EWn4Ij/5c8IrYD6R4/8t9ZZw8RYuaXDiah7+41PexmSjm7gAL3CaWSziE9P9TQC1ngBrudu7R/PvOqt46PkltHh4nlm7k6JjXEswQtVUIKNbNUyHK1jAXGuySlUHYs5UAF/kpxidQG8v0T1l60iCK3ZuJ72Egwnor0Zi/ctmnwe8upyQjn4LCIPaonwkcGaqXJClGNnrQ9v7yK/fSH+8RD4TMztYVJnomMH4JN9ogOVqH2jPhAJvj5rvqkKdk2tjaxYwyqGyn93J6LUmtADy7ProkJCfYAb60c1aj5o4V1x55uVaENqgvPzt3IBkr2Hjavdc7VbXECsut+zeLN7J5v7NWPVAILwO/mTlRxtw083ILlbVPVK5kZcrMyvOiQLZYM++An3lPhN66JeswZw4K6A3cYXXQ4h54KMVVlXIRLMBnKQMAdptTKH5XIne9eWIlFKoj0S4ESoFZreAMPxQ4+QyXTDuVxfxrHGTv9ZXMtkgtANGLAGYsYNTgoxMCEw= X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(26005)(336012)(7696005)(2906002)(70206006)(6916009)(6286002)(107886003)(508600001)(2876002)(8676002)(36756003)(316002)(55016002)(966005)(186003)(5660300002)(36906005)(16526019)(70586007)(8936002)(426003)(1076003)(86362001)(36860700001)(47076005)(83380400001)(2616005)(356005)(4326008)(82310400003)(6666004)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2021 11:04:54.7452 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b3aeb3e4-3fe5-4eb9-69f9-08d99eb9c444 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT064.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5086 Subject: [dpdk-dev] [PATCH v4 0/9] GPU library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
Elena Agostini
Nov. 3, 2021, 7:15 p.m. UTC
From: Elena Agostini <eagostini@nvidia.com>
In heterogeneous computing system, processing is not only in the CPU.
Some tasks can be delegated to devices working in parallel.
The goal of this new library is to enhance the collaboration between
DPDK, that's primarily a CPU framework, and GPU devices.
When mixing network activity with task processing on a non-CPU device,
there may be the need to put in communication the CPU with the device
in order to manage the memory, synchronize operations, exchange info, etc..
This library provides a number of new features:
- Interoperability with GPU-specific library with generic handlers
- Possibility to allocate and free memory on the GPU
- Possibility to allocate and free memory on the CPU but visible from the GPU
- Communication functions to enhance the dialog between the CPU and the GPU
The infrastructure is prepared to welcome drivers in drivers/gpu/
as the CUDA one, sent as draft:
https://patches.dpdk.org/project/dpdk/patch/20211005224905.13505-1-eagostini@nvidia.com/
Changelog:
- Patches updated to latest DPDK commit
- Communication list item has an array of mbufs instead of opaque
objects
- Communication list free doesn't release mbufs anymore
Elena Agostini (6):
gpudev: introduce GPU device class library
gpudev: add memory API
gpudev: add memory barrier
gpudev: add communication flag
gpudev: add communication list
doc: add CUDA example in GPU guide
Thomas Monjalon (3):
gpudev: add event notification
gpudev: add child device representing a device context
gpudev: support multi-process
.gitignore | 1 +
MAINTAINERS | 6 +
app/meson.build | 1 +
app/test-gpudev/main.c | 394 +++++++++++
app/test-gpudev/meson.build | 5 +
doc/api/doxy-api.conf.in | 1 +
doc/guides/conf.py | 8 +
doc/guides/gpus/features/default.ini | 13 +
doc/guides/gpus/index.rst | 11 +
doc/guides/gpus/overview.rst | 10 +
doc/guides/index.rst | 1 +
doc/guides/prog_guide/gpudev.rst | 226 ++++++
doc/guides/prog_guide/index.rst | 1 +
doc/guides/rel_notes/release_21_11.rst | 6 +
drivers/gpu/meson.build | 4 +
drivers/meson.build | 1 +
lib/gpudev/gpudev.c | 908 +++++++++++++++++++++++++
lib/gpudev/gpudev_driver.h | 102 +++
lib/gpudev/meson.build | 12 +
lib/gpudev/rte_gpudev.h | 649 ++++++++++++++++++
lib/gpudev/version.map | 38 ++
lib/meson.build | 1 +
22 files changed, 2399 insertions(+)
create mode 100644 app/test-gpudev/main.c
create mode 100644 app/test-gpudev/meson.build
create mode 100644 doc/guides/gpus/features/default.ini
create mode 100644 doc/guides/gpus/index.rst
create mode 100644 doc/guides/gpus/overview.rst
create mode 100644 doc/guides/prog_guide/gpudev.rst
create mode 100644 drivers/gpu/meson.build
create mode 100644 lib/gpudev/gpudev.c
create mode 100644 lib/gpudev/gpudev_driver.h
create mode 100644 lib/gpudev/meson.build
create mode 100644 lib/gpudev/rte_gpudev.h
create mode 100644 lib/gpudev/version.map