MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / get_random_tensor_f16

Function get_random_tensor_f16

tests/test-grad0.cpp:115–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113}
114
115static struct ggml_tensor * get_random_tensor_f16(
116 struct ggml_context * ctx0,
117 int ndims,
118 int64_t ne[],
119 float fmin,
120 float fmax) {
121 struct ggml_tensor * result = ggml_new_tensor(ctx0, GGML_TYPE_F16, ndims, ne);
122
123 switch (ndims) {
124 case 1:
125 for (int i0 = 0; i0 < ne[0]; i0++) {
126 ((ggml_fp16_t *)result->data)[i0] = ggml_fp32_to_fp16(frand()*(fmax - fmin) + fmin);
127 }
128 break;
129 case 2:
130 for (int i1 = 0; i1 < ne[1]; i1++) {
131 for (int i0 = 0; i0 < ne[0]; i0++) {
132 ((ggml_fp16_t *)result->data)[i1*ne[0] + i0] = ggml_fp32_to_fp16(frand()*(fmax - fmin) + fmin);
133 }
134 }
135 break;
136 case 3:
137 for (int i2 = 0; i2 < ne[2]; i2++) {
138 for (int i1 = 0; i1 < ne[1]; i1++) {
139 for (int i0 = 0; i0 < ne[0]; i0++) {
140 ((ggml_fp16_t *)result->data)[i2*ne[1]*ne[0] + i1*ne[0] + i0] = ggml_fp32_to_fp16(frand()*(fmax - fmin) + fmin);
141 }
142 }
143 }
144 break;
145 case 4:
146 for (int i3 = 0; i3 < ne[3]; i3++) {
147 for (int i2 = 0; i2 < ne[2]; i2++) {
148 for (int i1 = 0; i1 < ne[1]; i1++) {
149 for (int i0 = 0; i0 < ne[0]; i0++) {
150 ((ggml_fp16_t *)result->data)[i3*ne[2]*ne[1]*ne[0] + i2*ne[1]*ne[0] + i1*ne[0] + i0] = ggml_fp32_to_fp16(frand()*(fmax - fmin) + fmin);
151 }
152 }
153 }
154 }
155 break;
156 default:
157 assert(false);
158 }
159
160 return result;
161}
162
163static struct ggml_tensor * get_random_tensor_i32(
164 struct ggml_context * ctx0,

Callers 1

mainFunction · 0.85

Calls 3

frandFunction · 0.70
ggml_new_tensorFunction · 0.50
ggml_fp32_to_fp16Function · 0.50

Tested by

no test coverage detected