1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
=head1 NAME
nbdkit-vram-plugin - use GPU Video RAM as a network block device
=head1 SYNOPSIS
nbdkit vram -f [device=NAME|N] [SIZE]
=for paragraph
nbdkit vram --dump-plugin
=head1 DESCRIPTION
C<nbdkit-vram-plugin> is a plugin for L<nbdkit(1)> which uses Video
RAM from an OpenCL-capable graphics card (GPU) as a block device.
You currently B<must> run the plugin in the foreground (C<nbdkit -f>
option).
Video RAM is volatile. As soon as nbdkit exits or the machine is
turned off, the disk and B<all data on it is deleted>.
=head2 Checking for compatible GPUs
To check that OpenCL is installed and sees your GPU, run L<clinfo(1)>:
$ clinfo --list
Platform #0: AMD Accelerated Parallel Processing
+-- Device #0: gfx1101
`-- Device #1: gfx1036
$ clinfo
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (3649.0)
...
Number of devices 2
Device Name gfx1101
Device Vendor Advanced Micro Devices, Inc.
Device Vendor ID 0x1002
Device Version OpenCL 2.0
...
Global memory size 17163091968 (15.98GiB)
...
Device Name gfx1036
Device Vendor Advanced Micro Devices, Inc.
Device Vendor ID 0x1002
Device Version OpenCL 2.0
...
Global memory size 33247174656 (30.96GiB)
If there is more than one device in the system, use the C<device>
parameter with the device name or index (counting from 0). For
example:
$ nbdkit -f vram device=gfx1101
=for comment
$ nbdkit -f vram device=0
To see what devices the plugin sees, use:
$ nbdkit vram --dump-plugin
...
vram_num_devices=2
vram_device_index=0
vram_device_name=gfx1101
...
vram_device_index=1
vram_device_name=gfx1036
=head2 Setting video RAM size
By default, the plugin will try to use as much of the video RAM on the
device as possible. You can limit the RAM to a smaller amount using
the optional C<size> parameter, eg:
$ nbdkit -f vram 10G
=head2 Video RAM is lazily allocated
The plugin allocates video RAM on demand as you fill it up with data.
This means that if there are other users of the GPU (for example, you
are running a game at the same time), it is possible to run out of
space. In this case, writes will return ENOSPC "No space left on
device" errors.
To limit the maximum amount of video RAM that will be used, use the
optional C<size> parameter.
If you trim the block device (see L<blkdiscard(8)> and L<fstrim(8)>),
video RAM is given back to the system.
Currently you cannot limit the video RAM used independently of the
virtual size of the disk (because it's not a good idea).
=head2 Integrated graphics
Integrated graphics GPUs (where the GPU is part of the CPU) usually
use system RAM as video RAM. Therefore there is no point using this
plugin with integrated graphics. Use L<nbdkit-memory-plugin(1)> to
use system RAM as a RAM disk instead.
=head1 PARAMETERS
=over 4
=item B<device=>NAME
=item B<device=>N
Choose the GPU by OpenCL name or by device index (counting from 0).
To list the devices known to OpenCL, use the L<clinfo(1)> command.
If you are not sure what device name or index to use, consult the
output of S<C<nbdkit vram --dump-plugin>>
=item [B<size=>]SIZE
Limit the size of the video RAM disk. If omitted, the plugin will try
to use all available video RAM on the device.
Note this may be rounded up by the plugin (currently to a multiple of
64K).
C<size=> __IS_MAGIC__
=back
=head1 ENVIRONMENT VARIABLES
Various environment variables are passed through to OpenCL and the
OpenCL driver. Please consult documentation for your GPU.
=head1 FILES
=over 4
=item F<$plugindir/nbdkit-vram-plugin.so>
The plugin.
Use C<nbdkit --dump-config> to find the location of C<$plugindir>.
=back
=head1 VERSION
C<nbdkit-vram-plugin> first appeared in nbdkit 1.46.
=head1 SEE ALSO
L<nbdkit(1)>,
L<nbdkit-plugin(3)>,
L<nbdkit-memory-plugin(1)>,
L<clinfo(1)>,
L<radeontop(1)>,
L<blkdiscard(8)>,
L<fstrim(8)>.
=head1 AUTHORS
Richard W.M. Jones
This plugin was heavily inspired by vramfs, a FUSE module written by
Alexander Overvoorde (L<https://github.com/Overv/vramfs>).
=head1 COPYRIGHT
Copyright Red Hat
|