René's URL Explorer Experiment


Title: Design: cuda.core Texture/Surface API surface · Issue #2188 · NVIDIA/cuda-python · GitHub

Open Graph Title: Design: cuda.core Texture/Surface API surface · Issue #2188 · NVIDIA/cuda-python

X Title: Design: cuda.core Texture/Surface API surface · Issue #2188 · NVIDIA/cuda-python

Description: Purpose Design discussion for the texture / surface API in cuda.core — to settle the API shape and naming before code review of the implementation. Reviewers asked for design sign-off in an issue before we commit to a ~9k-line feature. I...

Open Graph Description: Purpose Design discussion for the texture / surface API in cuda.core — to settle the API shape and naming before code review of the implementation. Reviewers asked for design sign-off in an issue b...

X Description: Purpose Design discussion for the texture / surface API in cuda.core — to settle the API shape and naming before code review of the implementation. Reviewers asked for design sign-off in an issue b...

Opengraph URL: https://github.com/NVIDIA/cuda-python/issues/2188

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Design: cuda.core Texture/Surface API surface ","articleBody":"## Purpose\n\nDesign discussion for the **texture / surface API** in `cuda.core` — to settle the API shape and\nnaming *before* code review of the implementation. Reviewers asked for design sign-off in an issue\nbefore we commit to a ~9k-line feature.\n\n- Implementation PR: #2095\n- Feature request: #467\n\ncc @leofang @mdboom @Andy-Jost @kkraus14 — you asked for a design pass; this is the home for it.\n\n## Proposed public surface (from #2095)\n\n- `Array` + `ArrayFormat` — opaque, hardware-laid-out GPU allocations backing textures/surfaces.\n- `MipmappedArray` — wraps `CUmipmappedArray`; `get_level` returns a non-owning `Array` kept alive\n  by a strong ref to the parent.\n- `TextureObject` + `TextureDescriptor` — bindless texture handle + sampling state. (read-only)\n- `SurfaceObject` — bindless surface handle; requires `Array(surface_load_store=True)`. (read/write)\n- `ResourceDescriptor` — factories `from_array`, `from_mipmapped_array`, `from_linear`, `from_pitch2d`.\n\n## Decisions to make\n\n1. **Name of `Array`. ✅ Decided — rename `Array` → `CUDAArray`.**\n\n   This type is an opaque `cudaArray_t` — the GPU stores it in a scrambled, hardware-defined layout\n   with no linear pointer, so it **cannot** expose `__cuda_array_interface__` / DLPack and cannot\n   share memory zero-copy with cupy / numba-cuda / torch. The name `Array` implies an n-dimensional\n   array that participates in that ecosystem — it can't. CuPy names the identical type `CUDAarray`,\n   and its whole `cupy.cuda.texture` module already matches this PR's surface 1:1.\n\n   **Resolution: use `CUDAArray`** — the PEP 8 CapWords form (deliberately differing from CuPy's exact\n   `CUDAarray` casing to follow Python's class-naming standard). The name signals \"CUDA texture/surface\n   backing store,\" not \"n-dimensional array.\"\n\n   **Open detail resolved: keep `ArrayFormat` (do *not* rename to `CUDAArrayFormat`).** The sibling\n   enums in these modules — `AddressMode`, `FilterMode`, `ReadMode` — are all unprefixed, so\n   `ArrayFormat` matches the established enum-naming pattern; and the \"`Array` implies an\n   ndarray/DLPack participant\" concern that motivated `CUDAArray` does not apply to a format enum\n   (nobody mistakes `ArrayFormat` for an n-dimensional array).\n\n2. **Interop path. ✅ Decided — ship only `copy_from` / `copy_to`; no allocation helper.**\n\n   Zero-copy is impossible (opaque layout, no linear pointer), so copying is the only option —\n   this was purely about how polished the path is. The copy path to/from linear `cuda.core`\n   `Buffer`s already exists: `copy_from` / `copy_to` accept a device `Buffer` or a host\n   buffer-protocol object, in both directions. The only thing an extra helper would add is\n   allocating the linear `Buffer` for the caller — folding `mr.allocate(arr.size_bytes, stream=s)`\n   + `arr.copy_to(buf, stream=s)` into a one-liner, i.e. ~2 lines of convenience.\n\n    The \"extra helper\" would collapse this:\n    ```\n    mr = DeviceMemoryResource(device)\n    buf = mr.allocate(arr.size_bytes, stream=s)\n    arr.copy_to(buf, stream=s)\n\n    into something like \n   buf = arr.to_buffer(mr, stream=s).\n    ```\n\n   **Resolution: ship `copy_from` / `copy_to` only, and document the copy-only contract.** We will\n   not add an allocating convenience helper now. It is purely additive and non-breaking, so we can\n   add one later if users request it.\n\n3. **Factory set. ✅ Not a real decision — driver-mandated, all four required.**\n\n   A texture can be backed by four kinds of memory — the PR exposes one factory per kind:\n   - `from_array` — texture over a `CUDAArray` *(the headline feature)*\n   - `from_mipmapped_array` — texture over a `MipmappedArray` *(the headline feature)*\n   - `from_linear` — texture over a plain 1D device buffer *(ordinary linear memory, no `CUDAArray`)*\n   - `from_pitch2d` — texture over a plain 2D pitched buffer *(ordinary linear memory, no `CUDAArray`)*\n\n   `ResourceDescriptor` binds `CUDA_RESOURCE_DESC`, a driver union whose `resType` is exactly one of\n   `ARRAY` / `MIPMAPPED_ARRAY` / `LINEAR` / `PITCH2D` — one factory per union arm. A faithful binding\n   of that type *must* cover all four; shipping only two would be an incomplete binding of a mandatory\n   driver struct, not a smaller-but-valid surface. So there was no real optionality here — the CTK\n   driver API dictates the set. (Listed only because it sat next to the genuine decisions.)\n\n   **Resolution: ship all four factories — required by the driver API, not a tradeoff.**\n\n4. **Channel format. ✅ Decided — keep the folded `format` + `num_channels` parameters.**\n\n   Each array element has a component type (e.g. 8-bit uint, 32-bit float) and a channel count\n   (1 = grayscale … 4 = RGBA). Two ways to surface that:\n   - **Folded (this PR):** `CUDAArray.from_descriptor(shape=..., format=ArrayFormat.FLOAT32, num_channels=4)`\n   - **Separate (CuPy):** one `ChannelFormatDescriptor(...)` object passed as a unit\n\n   The driver descriptor `cuda.core` actually fills in (`CUDA_ARRAY3D_DESCRIPTOR`) already stores\n   these as two separate fields — `Format` (a `CUarray_format`, mirrored 1:1 by `ArrayFormat`) and\n   `NumChannels`. So the folded form maps straight onto the driver struct with no translation, and\n   read-back is already exposed as two properties (`.format`, `.num_channels`). The bundled\n   `ChannelFormatDescriptor` is the *runtime* API's (`cudaChannelFormatDesc`) modeling — the form\n   CuPy wraps because its texture module sits on the runtime API. Adopting it in a driver-based\n   library would mean a translation wrapper the underlying API doesn't use (and the shapes don't even\n   map cleanly: the driver uses one uniform component format × channel count, while\n   `cudaChannelFormatDesc` allows per-channel bit widths).\n\n   **Resolution: keep folded `format` + `num_channels`.** It's the driver-faithful surface\n   (consistent with #1 favoring correctness over CuPy parity and #3 following the driver API); the\n   bundled form's only wins are CuPy look-alike and a single read-back object, neither worth a\n   runtime-style wrapper here.\n\n5. **Descriptor type consistency. ✅ Not a real decision — divergence is intentional and harmless.**\n\n   *Note: the original framing here was factually wrong.* `ResourceDescriptor` is **not** a `cdef\n   class` and holds **no** native C struct — it is a plain Python class with `__slots__`, storing a\n   reference to the backing resource plus a few Python fields. The `CUDA_RESOURCE_DESC` struct is\n   assembled later, in `TextureObject.from_descriptor`. So this was never a `@dataclass`-vs-`cdef\n   class` / performance question. Both descriptors are pure Python.\n\n   The genuine difference is only *how you construct each*, and it reflects what each type is:\n   - `TextureDescriptor` — a flat bag of independent sampling settings, built directly with keyword\n     args (`@dataclass` fits perfectly).\n   - `ResourceDescriptor` — a \"pick exactly one of four backings\" union (array / mipmap / linear /\n     pitch2d), built via `from_*` factories because each kind carries different fields. A single\n     `__init__` would be a pile of mutually-exclusive optional args plus a kind tag.\n\n   Consistency is not a goal in itself — it only matters when inconsistency makes the API harder to\n   learn or use, and here it doesn't: a user learns each type once and never has to reconcile them.\n   The only behavioral gap is equality (`TextureDescriptor` compares by value; `ResourceDescriptor`\n   by identity), which is essentially never exercised on these objects and is arguably correct since\n   `ResourceDescriptor` wraps a live device resource. Forcing both to the same *kind* of type would\n   be uniformity for its own sake and would make `ResourceDescriptor`'s constructor worse.\n\n   **Resolution: keep the split — the divergence is intentional and does not hurt usability.** Like\n   #3, this resolves to a non-issue once examined (and on a mistaken premise to begin with).\n\n6. **Bool naming. ✅ Decided — adopt the `is_\u003csomething>` convention.**\n\n   `surface_load_store` is a boolean on `Array`: it records whether the array was created with the\n   surface load/store capability (CUDA's `CUDA_ARRAY3D_SURFACE_LDST`), which a `SurfaceObject`\n   requires. Exposed both as a constructor keyword (`surface_load_store=True`) and a read-only\n   property (`arr.surface_load_store`).\n\n   The repo convention for boolean properties is `is_\u003csomething>`, so a property named\n   `surface_load_store` doesn't read as a boolean the way `arr.is_managed` does. **Resolution: rename\n   the property to follow the `is_\u003cx>` convention (e.g. `is_surface_load_store`) for consistency with\n   the cuda-python codebase.**\n\n   **Open detail resolved:** the property name is `is_surface_load_store` (already implemented), and\n   the constructor keyword is renamed to match — `from_descriptor(..., is_surface_load_store=False)` —\n   so one symmetric name serves both set and read-back. This follows the existing\n   `StridedMemoryView(is_readonly=...)` precedent in cuda.core, where an `is_\u003cx>` boolean is used as\n   both the constructor argument and the attribute. (The keyword rename is a small implementation\n   follow-up in the PR; the property is already done.)\n\n7. **Scope. ✅ Decided — split the examples into a follow-up PR.**\n\n   The nine `gl_interop_*.py` examples (~5k lines, not CI-wired, need a GL context CI lacks) are\n   orthogonal to the core API. **Resolution: drop them from this PR and land them in a separate\n   follow-up PR once this core texture/surface PR merges**, since the examples depend on the new API\n   it introduces.\n\n\n\n\n\n\n\n","author":{"url":"https://github.com/rparolin","@type":"Person","name":"rparolin"},"datePublished":"2026-06-09T23:04:40Z","url":"https://github.com/NVIDIA/cuda-python/issues/2188"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:f8e59693-6782-e346-6c69-5e3c7609052f
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id8736:17907:6D6A30:8F41E9:6AF83693
html-safe-nonce0eb9e03aeadfb0cb9ccf8c0f68de1a089314aa941de433c8f45c4b5f481b7187
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NzM2OjE3OTA3OjZENkEzMDo4RjQxRTk6NkFGODM2OTMiLCJ2aXNpdG9yX2lkIjoiNjcwMTY3ODczODIwODMzNDI3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacbcf554b5f170d6cadf3e63a0959caf6422d33e2d68627ba2591968d6fbf15d92
hovercard-subject-tagissue:4626327805
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/NVIDIA/cuda-python/2188/issue_layout
twitter:imagehttps://opengraph.githubassets.com/a7e4a4d0c3b8a5a80f4f3369074bf02edc1472e8aa748c7d492d3c63c04e07b7/NVIDIA/cuda-python/issues/2188
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/a7e4a4d0c3b8a5a80f4f3369074bf02edc1472e8aa748c7d492d3c63c04e07b7/NVIDIA/cuda-python/issues/2188
og:image:altPurpose Design discussion for the texture / surface API in cuda.core — to settle the API shape and naming before code review of the implementation. Reviewers asked for design sign-off in an issue b...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamerparolin
hostnamegithub.com
expected-hostnamegithub.com
None5713ecd83001b2f55c3509fb7a292bf7d66d0f167c7ae87a9f7eaec5a52bf8db
turbo-cache-controlno-preview
go-importgithub.com/NVIDIA/cuda-python git https://github.com/NVIDIA/cuda-python.git
octolytics-dimension-user_id1728152
octolytics-dimension-user_loginNVIDIA
octolytics-dimension-repository_id381173759
octolytics-dimension-repository_nwoNVIDIA/cuda-python
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id381173759
octolytics-dimension-repository_network_root_nwoNVIDIA/cuda-python
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release653be32ff5c755082a4db662491bfbbcfc9112c1
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/NVIDIA/cuda-python/issues/2188#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FNVIDIA%2Fcuda-python%2Fissues%2F2188
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FNVIDIA%2Fcuda-python%2Fissues%2F2188
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=NVIDIA%2Fcuda-python
Reloadhttps://github.com/NVIDIA/cuda-python/issues/2188
Reloadhttps://github.com/NVIDIA/cuda-python/issues/2188
Reloadhttps://github.com/NVIDIA/cuda-python/issues/2188
NVIDIAhttps://github.com/NVIDIA
cuda-pythonhttps://github.com/NVIDIA/cuda-python
Codehttps://github.com/NVIDIA/cuda-python
Issues219 (219)https://github.com/NVIDIA/cuda-python/issues
Pull requests92 (92)https://github.com/NVIDIA/cuda-python/pulls
Discussionshttps://github.com/NVIDIA/cuda-python/discussions
Actionshttps://github.com/NVIDIA/cuda-python/actions
Projectshttps://github.com/NVIDIA/cuda-python/projects
Wikihttps://github.com/NVIDIA/cuda-python/wiki
Security and qualityhttps://github.com/NVIDIA/cuda-python/security
Insightshttps://github.com/NVIDIA/cuda-python/pulse
https://github.com/NVIDIA/cuda-python
New issuehttps://github.com/login?return_to=https://github.com/NVIDIA/cuda-python/issues/2188
New issuehttps://github.com/login?return_to=https://github.com/NVIDIA/cuda-python/issues/2188
Enhancementhttps://github.com/NVIDIA/cuda-python/issues?q=type:"Enhancement"
#2095https://github.com/NVIDIA/cuda-python/pull/2095
Design: cuda.core Texture/Surface API surface https://github.com/NVIDIA/cuda-python/issues/2188#top
#2095https://github.com/NVIDIA/cuda-python/pull/2095
https://github.com/rparolin
RFCPlans and announcementshttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22RFC%22
cuda.coreEverything related to the cuda.core modulehttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22cuda.core%22
featureNew feature or requesthttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22feature%22
cuda.core v1.1.0https://github.com/NVIDIA/cuda-python/milestone/46
https://github.com/rparolin
rparolinhttps://github.com/rparolin
on Jun 9, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issue-4626327805
cuda.core: add CUDAArray, TextureObject, SurfaceObject, MipmappedArray (texture/surface API, #467) #2095https://github.com/NVIDIA/cuda-python/pull/2095
Add TextureObject and SurfaceObject? #467https://github.com/NVIDIA/cuda-python/issues/467
@leofanghttps://github.com/leofang
@mdboomhttps://github.com/mdboom
@Andy-Josthttps://github.com/Andy-Jost
@kkraus14https://github.com/kkraus14
#2095https://github.com/NVIDIA/cuda-python/pull/2095
Renaming #1https://github.com/NVIDIA/cuda-python/issues/1
Docs Updates #3https://github.com/NVIDIA/cuda-python/issues/3
Docs Updates #3https://github.com/NVIDIA/cuda-python/issues/3
rparolinhttps://github.com/rparolin
cuda.core v1.1.0https://github.com/NVIDIA/cuda-python/milestone/46
on Jun 9, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26547029352
rparolinhttps://github.com/rparolin
RFCPlans and announcementshttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22RFC%22
featureNew feature or requesthttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22feature%22
cuda.coreEverything related to the cuda.core modulehttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22cuda.core%22
on Jun 9, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26547030145
rparolinhttps://github.com/rparolin
on Jun 9, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26547111396
rparolinhttps://github.com/rparolin
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26549640933
rparolinhttps://github.com/rparolin
Enhancementhttps://github.com/NVIDIA/cuda-python/issues?q=type:"Enhancement"
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26549644203
rparolinhttps://github.com/rparolin
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26549684988
Add TextureObject and SurfaceObject? #467https://github.com/NVIDIA/cuda-python/issues/467
rparolinhttps://github.com/rparolin
cuda.core: add CUDAArray, TextureObject, SurfaceObject, MipmappedArray (texture/surface API, #467) #2095https://github.com/NVIDIA/cuda-python/pull/2095
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26549696758
rparolinhttps://github.com/rparolin
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26549708667
Add TextureObject and SurfaceObject? #467https://github.com/NVIDIA/cuda-python/issues/467
rparolinhttps://github.com/rparolin
on Jun 10, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26550063589
cuda.core: rename Array->CUDAArray, surface_load_store->is_surface_lo…https://github.com/rparolin/cuda-python/commit/1432c0a39e4184087b238a2f0263a270ed2c063c
1432c0ahttps://github.com/rparolin/cuda-python/commit/1432c0a39e4184087b238a2f0263a270ed2c063c
cuda.core: rename surface_load_store ctor keyword to is_surface_load_…https://github.com/rparolin/cuda-python/commit/79823083d6489aa2ec0ba31d4c5184596aa77dbb
7982308https://github.com/rparolin/cuda-python/commit/79823083d6489aa2ec0ba31d4c5184596aa77dbb
https://github.com/rparolin
rparolinhttps://github.com/rparolin
on Jun 11, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issuecomment-4685340335
@leofanghttps://github.com/leofang
@mdboomhttps://github.com/mdboom
@Andy-Josthttps://github.com/Andy-Jost
https://github.com/Andy-Jost
Andy-Josthttps://github.com/Andy-Jost
on Jun 16, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issuecomment-4723567313
https://github.com/Andy-Jost
Andy-Josthttps://github.com/Andy-Jost
on Jun 16, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issuecomment-4724274275
rparolinhttps://github.com/rparolin
on Jun 17, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26873168262
cuda.core: address NVIDIA#2188 review feedback — copy parity + cuda.c…https://github.com/rparolin/cuda-python/commit/681e046b4cbfd2974e1da2800aed272ffce7c344
NVIDIA#2188https://github.com/NVIDIA/cuda-python/issues/2188
681e046https://github.com/rparolin/cuda-python/commit/681e046b4cbfd2974e1da2800aed272ffce7c344
cuda.core: document CUDAArray copy-only interop contract (NVIDIA#2188 …https://github.com/rparolin/cuda-python/commit/4b4f942835d884ea1f22b05cc44765987640252c
NVIDIA#2188https://github.com/NVIDIA/cuda-python/issues/2188
4b4f942https://github.com/rparolin/cuda-python/commit/4b4f942835d884ea1f22b05cc44765987640252c
https://github.com/rparolin
rparolinhttps://github.com/rparolin
on Jun 17, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issuecomment-4733321928
@Andy-Josthttps://github.com/Andy-Jost
#2095https://github.com/NVIDIA/cuda-python/pull/2095
#2095https://github.com/NVIDIA/cuda-python/pull/2095
rparolinhttps://github.com/rparolin
on Jun 17, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-26873819757
cuda.core: scope texture/surface PR to the core API + fluid examples (N…https://github.com/rparolin/cuda-python/commit/aae6af0d7e39ab386c7036e2bc3ce5b018798df3
N…https://github.com/NVIDIA/cuda-python/issues/2188
aae6af0https://github.com/rparolin/cuda-python/commit/aae6af0d7e39ab386c7036e2bc3ce5b018798df3
leofanghttps://github.com/leofang
Add TextureObject and SurfaceObject? #467https://github.com/NVIDIA/cuda-python/issues/467
on Jun 25, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-27214181390
rparolinhttps://github.com/rparolin
on Jun 26, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-27266187990
cuda.core: rename ArrayHandle -> CUDAArrayHandle; fix CUDAArray artic…https://github.com/rparolin/cuda-python/commit/40037e21caac7f2003a791760a33bdc4bb54d192
40037e2https://github.com/rparolin/cuda-python/commit/40037e21caac7f2003a791760a33bdc4bb54d192
cuda.core: rename CUDAArray -> OpaqueArray (and CUDAArrayHandle -> Op…https://github.com/rparolin/cuda-python/commit/1b76277655e1216c4214d74cd1fc148e9dc65e71
1b76277https://github.com/rparolin/cuda-python/commit/1b76277655e1216c4214d74cd1fc148e9dc65e71
rparolinhttps://github.com/rparolin
completedhttps://github.com/NVIDIA/cuda-python/issues?q=is%3Aissue%20state%3Aclosed%20archived%3Afalse%20reason%3Acompleted
#2095https://github.com/NVIDIA/cuda-python/pull/2095
on Jun 27, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-27268733734
rparolinhttps://github.com/rparolin
on Jun 27, 2026https://github.com/NVIDIA/cuda-python/issues/2188#event-27268733754
cuda.core: add CUDAArray, TextureObject, SurfaceObject, MipmappedArra…https://github.com/NVIDIA/cuda-python/commit/1e53cc6da5238c8c56bfbf17bd1a8f88c9243a9d
1e53cc6https://github.com/NVIDIA/cuda-python/commit/1e53cc6da5238c8c56bfbf17bd1a8f88c9243a9d
https://github.com/leofang
leofanghttps://github.com/leofang
on Jul 8, 2026https://github.com/NVIDIA/cuda-python/issues/2188#issuecomment-4918609778
#2292https://github.com/NVIDIA/cuda-python/issues/2292
Sign up for freehttps://github.com/signup?return_to=https://github.com/NVIDIA/cuda-python/issues/2188
Sign in to commenthttps://github.com/login?return_to=https://github.com/NVIDIA/cuda-python/issues/2188
rparolinhttps://github.com/rparolin
RFCPlans and announcementshttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22RFC%22
cuda.coreEverything related to the cuda.core modulehttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22cuda.core%22
featureNew feature or requesthttps://github.com/NVIDIA/cuda-python/issues?q=state%3Aopen%20label%3A%22feature%22
Enhancementhttps://github.com/NVIDIA/cuda-python/issues?q=type:"Enhancement"
cuda.core v1.1.0https://github.com/NVIDIA/cuda-python/milestone/46
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.