Class: Ignis::Collective::NetworkDirect::MemoryRegion
- Inherits:
-
Object
- Object
- Ignis::Collective::NetworkDirect::MemoryRegion
- Defined in:
- lib/nvruby/collective/net/nd_adapter.rb
Overview
Memory Region for RDMA registration
Instance Attribute Summary collapse
-
#buffer ⇒ FFI::Pointer
readonly
Buffer pointer.
-
#handle ⇒ FFI::Pointer
readonly
Native MR handle.
-
#size ⇒ Integer
readonly
Buffer size.
-
#token ⇒ Integer
readonly
Memory region token (for remote access).
Instance Method Summary collapse
-
#deregister! ⇒ void
Deregister the memory region.
-
#initialize(adapter, buffer, size, flags) ⇒ MemoryRegion
constructor
A new instance of MemoryRegion.
-
#register! ⇒ void
Register the memory region.
-
#remote_access_info ⇒ Hash
Get remote access token for RDMA write/read.
Constructor Details
#initialize(adapter, buffer, size, flags) ⇒ MemoryRegion
Returns a new instance of MemoryRegion.
324 325 326 327 328 329 330 331 332 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 324 def initialize(adapter, buffer, size, flags) @adapter = adapter @buffer = buffer @size = size @flags = flags @handle = nil @token = nil @registered = false end |
Instance Attribute Details
#buffer ⇒ FFI::Pointer (readonly)
Returns Buffer pointer.
313 314 315 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 313 def buffer @buffer end |
#handle ⇒ FFI::Pointer (readonly)
Returns Native MR handle.
322 323 324 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 322 def handle @handle end |
#size ⇒ Integer (readonly)
Returns Buffer size.
316 317 318 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 316 def size @size end |
#token ⇒ Integer (readonly)
Returns Memory region token (for remote access).
319 320 321 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 319 def token @token end |
Instance Method Details
#deregister! ⇒ void
This method returns an undefined value.
Deregister the memory region
359 360 361 362 363 364 365 366 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 359 def deregister! return unless @registered # In real implementation: IND2MemoryRegion::Deregister + Release @handle = nil @token = nil @registered = false end |
#register! ⇒ void
This method returns an undefined value.
Register the memory region
336 337 338 339 340 341 342 343 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 336 def register! return if @registered # In real implementation: IND2Adapter::CreateMemoryRegion + Register @handle = FFI::Pointer.new(:void, 0xABCDEF00) # Placeholder @token = rand(0xFFFFFFFF) # Would be from GetRemoteToken @registered = true end |
#remote_access_info ⇒ Hash
Get remote access token for RDMA write/read
347 348 349 350 351 352 353 354 355 |
# File 'lib/nvruby/collective/net/nd_adapter.rb', line 347 def remote_access_info raise RDMAError, "Memory not registered" unless @registered { address: @buffer.address, token: @token, size: @size } end |